2012-08-30 49 views
1

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

+0

PHP中没有这样的预定义变量。 http://php.net/manual/en/reserved.variables.server.php –

+1

@DanGrossman - 根据这个,有:http://php.net/manual/en/reserved.variables.server.php# 105602 –

+0

检查页面dan上的评论链接,你会看到REDIRECT_STATUS _is_是一个有效的变量。 –

回答

4

你可以只尝试使用的线沿线的东西...

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

然后从那里据此与$ _GET处理错误页面。

+0

谢谢@Tynarus,我宁愿不这样做。 所以,如果你们发现任何更多,你知道我住在哪里:) – user784298

0

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

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

@KenK ItayMoav丹格罗斯曼 哇,这是我得到的最多答复,哇,我很兴奋,感谢所有的贡献,我是开始相信这个变量没有被定义,但是后来看到代码在哪里被使用。 所以,如果你们发现更多,你知道我住在哪里:) – user784298

3

Apache manual

当重定向到本地URL,其他环境变量是 集,以便响应可以进一步定制。他们不会发送 到外部URL。

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

取而代之的是:

​​

这样做:

ErrorDocument 404 /error-page.php 

我一直没能在别处找到这个时候加入到Apache,说,所以我不知道是什么该功能需要版本。