2012-08-30 213 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,說,所以我不知道是什麼該功能需要版本。