PHP如何使404页面重定向
答案:2 悬赏:10 手机版
解决时间 2021-02-12 08:03
- 提问者网友:鐵馬踏冰河
- 2021-02-11 17:45
PHP如何使404页面重定向
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-02-11 18:01
最近在改一些东西,包括Discuz论坛,在处理Discuzde修改时特别是重新写了一个404de页面,让用户访问不存在de页面时去访问这个404页面。但是遇到了一个很奇怪de问题,即无法重定向到这个页面。
最初操作:
1、把apache中de配置文件里 加入代码:ErrorDocument 404 /404.php
2、在404页面de代码里加上 。这个方法是向客户端发送一个自然deHTTP头。这个方法要在没you向客户端发送任何信息之前使用,因此加在404.phpde文件头最好。
经过对配置文件和DZ论坛代码de查看,发现原因:rewrite规则问题,即我做伪静态de处理,导致第二种地址规则you效,于是已经pass过了服务器层,apachede404定义不再起作用,所以在读取数据dephp文件会被执行。针对这种情况应该做处理。
处理:
1、找到被执行de文件:如viewthread.php;
2、在查询数据后,加上对数据de判断,如果为空,则填写重定向代码;
3、代码:
if(如果没you任何结果)
{
//以前是仅仅显示“该帖子已经不存在”de提示,现在是:
require(’/404.php’);
@header(’HTTP/1.1 404 Not Found’);
@header(’Status: 404 Not Found’);
exit;
}
结果:以上问题解决,可以以404de状态重定向到我自定义de404页面。
最初操作:
1、把apache中de配置文件里 加入代码:ErrorDocument 404 /404.php
2、在404页面de代码里加上 。这个方法是向客户端发送一个自然deHTTP头。这个方法要在没you向客户端发送任何信息之前使用,因此加在404.phpde文件头最好。
经过对配置文件和DZ论坛代码de查看,发现原因:rewrite规则问题,即我做伪静态de处理,导致第二种地址规则you效,于是已经pass过了服务器层,apachede404定义不再起作用,所以在读取数据dephp文件会被执行。针对这种情况应该做处理。
处理:
1、找到被执行de文件:如viewthread.php;
2、在查询数据后,加上对数据de判断,如果为空,则填写重定向代码;
3、代码:
if(如果没you任何结果)
{
//以前是仅仅显示“该帖子已经不存在”de提示,现在是:
require(’/404.php’);
@header(’HTTP/1.1 404 Not Found’);
@header(’Status: 404 Not Found’);
exit;
}
结果:以上问题解决,可以以404de状态重定向到我自定义de404页面。
全部回答
- 1楼网友:鱼芗
- 2021-02-11 19:38
你随便重定向到一个不存在的页面不久是404了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯