未定义的索引:php中的REDIRECT_STATUS

时间:2012-08-30 00:59:52

标签: php .htaccess

我已经成功创建了一个.htaccess文件,该文件可以正常工作,并将所有错误代码(400,403,404,405,408,500,502,504)重定向到常见的error-page.php。 我正在使用 $ _ SERVER [“REDIRECT_STATUS”] ;检测错误代码,但是当页面导航到错误时,我会收到未定义索引:REDIRECT_STATUS 错误。是否需要设置一些配置或其他变量? 提前致谢

3 个答案:

答案 0 :(得分:4)

您可以尝试使用类似......

的内容
ErrorDocument 404 /error-page.php?status=404
ErrorDocument 500 /error-page.php?status=500

然后使用$ _GET从那里处理错误页面。

答案 1 :(得分:3)

来自Apache manual

  

重定向到本地URL时,会有其他环境变量   设置,以便可以进一步定制响应。他们没有被发送   到外部网址。

因此,如果您的ErrorDocument指令使用URL,则$_SERVER["REDIRECT_STATUS"]将不可用。

而不是:

ErrorDocument 404 http://example.com/error-page.php

这样做:

ErrorDocument 404 /error-page.php

我无法找到任何说明何时添加到Apache的地方,因此我不确定此功能需要哪个版本。

答案 2 :(得分:0)

我想这有用吗?它适用于我遇到的几乎所有未定义的索引错误。

<?PHP
    error_reporting(E_ALL & ~E_NOTICE);
?>