【问题标题】:Apache ErrorDocument: showing 404 URLApache ErrorDocument:显示 404 URL
【发布时间】:2012-12-17 23:52:53
【问题描述】:

我怀疑这无法完成,但无论如何都可以。当您使用 Apache 指令 ErrorDocument 将 404 File Not Found 错误重定向到自定义页面时,有没有办法在 static 站点上显示用户尝试访问的 URL?例如,如果您尝试:

http://www.fredriley.org.uk/dingbat/arsebiscuits

默认的 404 错误说:

The requested URL /dingbat/arsebiscuits was not found on this server.

所以 URL 必须在环境变量中。我可以在自定义错误文档中解决这个问题吗?我想告诉用户 URL 而不是只给他们一个通用的错误文档。我知道我可以在 PHP 中轻松做到这一点,但该站点仅包含静态 HTML 文档。

【问题讨论】:

  • 拥有静态网站并不能阻止您拥有动态错误页面。您的托管服务是否提供某种服务器端技术?
  • 谢谢,阿尔瓦罗。 PHP 在托管服务(Titan)上很好,所以我想我可以为 404 编写一个 PHP 脚本。可能 REQUEST_URI (php.net/manual/en/reserved.variables.server.php) 将是最好的环境变量,除非你能提出更好的方法?尽管该站点 (fredriley.org.uk/callhull) 主要由静态文档组成,但我确实在其上使用了几个 PHP 脚本来编写表单,因此编写另一个文档没什么大不了的。不过,我很好奇,是否有办法在静态 HTML 文档中访问环境变量。
  • 静态意味着:静态 ;-) 我已经为其余部分写了一个正确的答案。

标签: apache http-status-code-404 errordocument


【解决方案1】:

拥有静态网站不会阻止您拥有动态错误页面。您可以使用托管服务提供的任何服务器端技术。

如果你会使用 PHP,你可以简单地选择一个静态模板,将其扩展名更改为 *.php 并添加一点动态 sn-p:

<p><?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?></p>

如果你可以使用SSI,那就很相似了:

<p><!--#echo var="REQUEST_URI" --></span></p>

REQUEST_URI 变量包含用户键入的 URL 的本地部分(哈希除外)。是个不错的选择。

【讨论】:

  • 谢谢。我完全忘记了 SSI,现在它比较少见,而且很多主机都不支持。
猜你喜欢
  • 2011-05-05
  • 2012-08-25
  • 1970-01-01
  • 2016-11-19
  • 2011-03-24
  • 2018-01-03
  • 2018-03-10
  • 2014-04-23
  • 1970-01-01
相关资源
最近更新 更多