<?php
class EmptyAction extends Action {
function _empty(){
header("HTTP/1.0 404 Not Found")
$this->display('Public:404')
}
// 404
function index() {
header("HTTP/1.0 404 Not Found")
$this->display('Public:404')
}
}
?>
以上通过直接定义空模块和空 *** 作实现404跳转,但要注意的是:
设置header头很重要, 不然的话返回的状态会是200.
该类对应Public模板目录下需要有名为404的页面模板.
在ACTION中新建一个文件EmptyAction.class.php,文件中的代码如下:1
2
3
4
5
6
7
8
<?php
class EmptyAction extends Action{
function _empty(){
header("HTTP/1.0 404 Not Found")//使HTTP返回404状态码
$this->display("Public:404")
}
}
?>
在apache中设置
在你的网站配置中加入 ErrorDocument 404 /404.html 即可。
在iis中设置
IIS/ASP.net下设置404错误页面
打开apache httpd.conf配置文件或者新建.htaccess配置文件
首先,修改应用程序根目录的设置,打开 “web.config” 文件编辑,在其中加入如下内容:
1
2
3
4
5
6
7
<configuration>
<system.web>
<customErrors mode=”On” defaultRedirect=”error.asp”>
<error statusCode=”404″ redirect=”notfound.asp” />
</customErrors>
</system.web>
</configuration>
注:上文例中“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。
然后,在自定义的404页面“notfound.asp”中加入:
<%
Response.Status = “404 Not Found”
%>
php 404
if(如果没有任何结果)
{
//以前是仅仅显示“该帖子已经不存在”的提示,现在是:
require(’/404.php’);
@header(’HTTP/1.1 404 Not Found’);
@header(’Status: 404 Not Found’);
exit
}
thinkphp设置添加404页面:我们知道:当系统在找不到请求的 *** 作方法的时候,会定位到空 *** 作(_empty)方法来执行;当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController)。
利用这个机制我们可以用来定制错误页面和进行URL的优化,这里以ThinkPHP3.2.3为例。
1
2
3
4
5
6
7
8
<?php
namespace Home\Controller
use Think\Controller
class EmptyController extends Controller{ // 定义EmptyController空控制器
public function _empty(){ // 定义空 *** 作(_empty)方法
echo '<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8" homePageUrl="你自己的主页" homePageName="回到我的主页"></script>'// 这里使用腾讯公益的一个js做404页面
}
}
这样,我们就完成了ThinkPHP设置404页面功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)