2016-03-12 35 views
0

我正在使用IIS和PHP。我有一個自定義的404頁面,它是一個PHP腳本。在此頁面上,我想顯示訪問的原始網址。我正在嘗試以下文本加上服務器變量,但它只是顯示站點名稱,HTTP_REFERER通常是空白的。在IIS中顯示原始URL PHP 404頁面

echo 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['HTTP_REFERER']; 

什麼是正確的服務器變量用於獲取PHP/IIS中的原始URL。

這是我的web.config中的相應部分來調用自定義404頁:

<httpErrors> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/404.php" responseMode="Redirect" /> 
</httpErrors> 
+1

*「和HTTP_REFERER通常是空白的」* - 這不應該依賴。有一個在這裏閱讀http://stackoverflow.com/a/6023980/ –

+0

同意,但我應該使用它的地方?不要忘了IIS已將瀏覽器發送到此頁面,因爲找不到原始頁面。 –

+0

不幸的是Rob,我對IIS一無所知。看看這個答案是否有幫助http://stackoverflow.com/a/13703882/ –

回答

3

而不是使用重定向我做了一個ExecuteURL

<error statusCode="404" path="/404.php" responseMode="ExecuteURL" /> 

併爲變量來描述頁面

echo 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
+0

很高興看到你找到你的解決方案Rob,* cheers *。 –