【问题标题】:Showing raw URL in IIS PHP 404 page在 IIS PHP 404 页面中显示原始 URL
【发布时间】:2016-06-28 02:29:31
【问题描述】:

我正在使用 IIS 和 PHP。我有一个自定义 404 页面,它是一个 PHP 脚本。在此页面上,我想显示访问的原始 URL。我正在尝试以下文本加上服务器变量,但它只是显示站点名称,HTTP_REFERER 通常为空白。

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>

【问题讨论】:

  • “并且 HTTP_REFERER 通常为空白” - 不应该依赖它。在这里阅读stackoverflow.com/a/6023980
  • 同意,但我应该用什么来代替它?不要忘记 IIS 已将浏览器发送到此页面,因为找不到原始页面。
  • 不幸的是,Rob,我对 IIS 一无所知。看看这个答案是否有帮助stackoverflow.com/a/13703882

标签: php iis


【解决方案1】:

我不使用重定向,而是使用 ExecuteURL

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

以及用于描述页面的变量

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-01
    • 2011-07-01
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2017-01-22
    相关资源
    最近更新 更多