使用友好网址时,请在.htaccess中使用ErrorDocument

时间:2013-01-22 17:04:23

标签: php mod-rewrite apache2 custom-error-pages errordocument

我在网页的错误处理过程中遇到了一些问题,在 PHP 5.2网站中打开了友好的网址(和mod_rewrite)。我从框架管理url规则,所以我需要将所有请求移动到index.php 。这是一个简单的部分(和魅力一样)。现在,从同一个框架我碰巧将http状态代码抛出到标头,然后我exit(),所以没有输出,但标题被分派给用户。现在问题是这些(或两者)中的一个:

  1. 状态代码在处理开始后发送,因此Apache与此无关(如果我弄错了,请纠正我)。

  2. 每个请求(可能甚至是403和500?)都被重写为index.php,因此永远不会读取ErrorDocument,因为一切看起来都很正常(很可能是错误的)

  3. 这是我的.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只留下一个空白屏幕。

0 个答案:

没有答案