我在网页的错误处理过程中遇到了一些问题,在 PHP 5.2网站中打开了友好的网址(和mod_rewrite)。我从框架管理url规则,所以我需要将所有请求移动到index.php 。这是一个简单的部分(和魅力一样)。现在,从同一个框架我碰巧将http状态代码抛出到标头,然后我exit()
,所以没有输出,但标题被分派给用户。现在问题是这些(或两者)中的一个:
状态代码在处理开始后发送,因此Apache与此无关(如果我弄错了,请纠正我)。
每个请求(可能甚至是403和500?)都被重写为index.php,因此永远不会读取ErrorDocument
,因为一切看起来都很正常(很可能是错误的)
这是我的.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
ErrorDocument 400 /error/400
ErrorDocument 403 /error/403
ErrorDocument 404 /error/404
ErrorDocument 405 /error/405
ErrorDocument 408 /error/408
ErrorDocument 500 /error/500
ErrorDocument 502 /error/502
ErrorDocument 504 /error/504
其中/error/"number"
是我可以解析的另一个URI,但它也可以是静态页面。
现在,问题是:
有没有办法可以提出这些错误请求(在请求启动后抛出)以使用ErrorDocument
的指令?
PS:作为旁注,Chrome显示标准的“chromy”Forbidden / Not Found / etc页面,而Firefox只留下一个空白屏幕。