404错误页面

#1 lijian

问一下jake
就是设置了404错误页面,那也只能控制action和controller的值(http://localhost/item/index.php?c=main&a=index首页)
假如我这样http://localhost/item/asdasdasdasdasd时,还是出现not found page!假日我想把这样的也转到404.html
这样可以设置吗?先谢谢jake了

2012-04-22 16:06:50

#2 jake

手册上面写着:http://www.speedphp.com/dev-diy-404.html

在UrlRewrite(伪静态)下的404错误页面,可以正常支持404页面的显示。
在非UrlRewrite的情况,只有“找不到控制器”的错误将被视作404错误,而其他页面无法找到的情况,会根据服务器本身的设置而定。

也就是说,如果要实现你想要的“正常支持404页面的显示”,那么有两个方法:

1. 使用UrlRewrite伪静态,详情还是参考手册。
2. 一般虚拟主机都可以配置的,或者自己设置apache的404转向,转到你的404页面上去。

2012-04-22 19:14:32

#3 chunjiao2012

jake 发表于 2012-4-22 19:14
手册上面写着:http://www.speedphp.com/dev-diy-404.html

在UrlRewrite(伪静态)下的404错误页面,可以 ...
我想请问什么叫做:UrlRewrite(伪静态)下的404错误页面
因为我现在把'dispatcher_error' => "header('location:/404.html');",放在$spConfig = array()内,只是在控制器不正确时显示404。
如果是数据库查询错误等其他情况,还是不显示404。
你留参考的手册http://www.speedphp.com/dev-diy-404.html只是一个404页面,我找不到相关的信息。
求指教!!

2014-08-01 14:26:53

#4 jake

http://www.speedphp.com/thread-3848-1-1.html

是这个

2014-08-01 21:07:03

#5 chunjiao2012

你的手册上只说了:[size=12.727272033691406px]加入如下配置:'dispatcher_error' => "import(APP_PATH.'/404.html');exit();",
[size=12.727272033691406px]可实现:当访问到“找不到控制器”的错误的时候,将显示404.html文件的内容。

没有说清楚: “UrlRewrite(伪静态)下的404错误页面,可以正常支持404页面的显示”。
即:在其它错误页面未找到的时候,仍显示404?

你可以看一下我在“3楼”的问题,你应该没有看懂我的问题。


2014-08-04 09:49:13

#6 jake

chunjiao2012 发表于 2014-8-4 09:49
你的手册上只说了:加入如下配置:'dispatcher_error' => "import(APP_PATH.'/404.html');exit();",
可实 ...
抱歉,真不懂你的问题。
不过建议你稍微了解一下伪静态是什么样的一个实现原理,还有404的原理,就很容易解决你的问题了。
或者除了看手册,稍微动手试试,会更容易理解。

不过当然,首先的前提是你的服务器要支持rewrite,按你上面的描述,应该你的服务器还没支持rewrite,所以才会显示服务器自带的404

rewrite是将全部请求转发到index.php,包括找不到页面的404请求。

所以dispatcher_error是在rewrite的情况下显示404的功能。


2014-08-04 09:56:15

#7 chunjiao2012

重新问:一个speedphp网站,使用了伪静态urlRewrite,服务器开启了rewrite。
如何实现将所有的错误页面转到404?
dispatcher_error只能实现一种错误(即控制器错误)的跳转。
那么请问:其他的怎么实现?求解答!!!

2014-08-12 13:17:29

#8 jake

帮你搜索了一下论坛,这里有说明 http://www.speedphp.com/thread-4644-2-1.html

建议先自行搜索论坛,会更方便。

2014-08-12 13:25:01

#9 chunjiao2012

那个帖子看过,但是也还是不全面。
还有种情况:就是在当前页面的url后添加任意字符串它不会跳到404。
而页面http://www.speedphp.com/thread-3459-1-1.html-534就会跳到404

2014-08-12 14:08:02

#10 jake

“当前页面的url后添加任意字符串它不会跳到404”

大部分网站的URL后面,你加上个?abc=任意字符串或者是&abc=任意字符串,都是不会到404的。

如果要做到那么与众不同,可以在程序里面接收参数进行判断。

2014-08-12 14:20:21