【发布时间】:2016-04-18 16:14:13
【问题描述】:
在我的网络服务器中,我创建了一个带有以下行的 .htaccess 文件,以将错误/丢失的 URL(错误 404)重定向到 php 文件 not_found.php。它工作正常。
ErrorDocument 404 http://myserver.edu.in/not_found.php
我能否将错误/丢失的 URL 列表捕获到文本文件中(或)在错误页面 not_found.php 本身中显示错误/丢失的 URL?
我尝试了 not_found.php 文件中的 PHP 变量 $_SERVER['REQUEST_URI'] 来捕获错误/缺失的 URL。现在我有两个问题。
由于我在 .htaccess 中使用了错误页面的完整 URL,因此失败。如果我将其更改为
ErrorDocument 404 /not_found.php。它只能在同一目录中正常工作。-
在 not_found.php 文件中,我使用了
include_once函数来包含页眉、页脚、图像和脚本。所以,如果我将 .htaccess 更改为ErrorDocument 404 /not_found.php,错误页面 not_found.php 不会在不同的目录中正确显示。例如,http://myserver.edu.in/xxx/trial.php
在这种情况下,我为图像和脚本使用了完整的 URL。但是,无法使用
include_once函数对 PHP 文件使用完整 URL。
谁能提出一些更好的想法来解决这个问题?
【问题讨论】:
-
关于第二期,你能再解释一下吗?
does not display properly in the different directory我真的不明白你的意思。 -
@CharlotteDunois 在第二期中,错误页面在其他目录中不显示包含的文件。
-
Apache 已经将所有 404 错误记录到它自己的日志中。您最好解析此日志或找到处理此日志的程序。
-
@RiggsFolly 不正确。如果您将 php 脚本作为 404 错误文档,它运行该脚本就好了。我们使用它来重定向所有页面,包括 404 错误到网站上的登录表单,您加载的每个页面都需要登录。
-
@JonathanKuhn 啊,是的,你是对的,我显然错过了问题的那一部分。显然是时候喝杯咖啡了
标签: php apache .htaccess mod-rewrite