2016-03-12 28 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 *。 –