在自定义404页面上捕获和记录损坏的链接

时间:2013-12-20 18:34:53

标签: apache .htaccess http-status-code-404

我正在尝试在php中创建一个客户404页面,该页面捕获并可以将所请求的页面登录到数据库中。我已经在我的.htaccess文件中有这个:

ErrorDocument 404 http://mywebsite.com/notfound.php

我要做的是将请求的URI作为查询字符串附加到URL。我试过这个:

ErrorDocument 404 http://mywebsite.com/notfound.php?url=% {REQUEST_URI}

但是URL显示了我在上面放置的文字文本。所以我想我最后需要某种标志,如[QSA]或其他东西,但所有尝试都会导致服务器错误500.

我的最终目标是在notfound.php页面上捕获尝试断开的链接和引用URL(我可以从$ _SERVER ['HTTP_REFERER']获取)并将其记录到我的数据库中,我可以在其中提取报告所有链接,超链接或通过AJAX调用,已损坏或丢失。除了获得导致404错误的实际链接的请求URI之外,我能够做所有事情。

1 个答案:

答案 0 :(得分:1)

您不应在目标中使用ErrorDocument 404 http://来避免完全重定向,例如:

ErrorDocument 404 /devsite/notfound.php

然后原始404 URI将作为$_SERVER["REQUEST_URI"]

提供给您