如何解决Apache重写404:获取请求的URL
| 在我重定向到任何404错误页面的错误页面上,我想记录用户尝试获取的URL。 我已经尝试过了,但是没有用:ErrorDocument 404 /error/?url=%{HTTP_REFERRER}
谁能告诉我该怎么做?
解决方法
尝试ѭ1。我不确定这是否可以在ErrorDocument中使用,因为我从未测试过它,但是值得尝试。
ErrorDocument 404 /error/?url=%{REQUEST_URI}
,没有直接的方法。也不是3英镑的一个。但是,PHP的解决方法很少。
例如,我当前使用一个函数来创建每个页面的链接。所以我只需要在主函数中添加file_exists()(单个函数中只有几行)。
这是我用来创建网址的功能:
function url ($Value)
{
// Do some stuff with the url
// [Not showed]
if (!file_exists(\"/internal/path/\".$Value))
{
// Call a function to store the error in a database
error (\"404\",$Value);
// One way of handling it. Replace \'/\' for \' \' and search that string.
// Example: \"path/to/page\" would become \"path to page\".
$Value=str_replace(\"/\",\"%20\",$Value);
return \"http://www.example.com/search=\".$Value;
}
else
{
// If the page exists,create the normal link.
return $FullUrl;
}
}
这是我创建网址的常规方式:
<?php url(\'path/to/page\'); ?>
我只是想过这种方法。很棒,因为即使用户没有单击链接,它也允许您查找丢失的页面。感谢您让我考虑一下,现在我将在我的页面中使用它(:
另一个“简单”的方法(如果您不包装链接)是在$_SESSION[\'lastpage\'];
和$_SESSION[\'lastlastpage\'];
中存储最后访问的几对页面,如果找到404,则存储用户尝试从中访问断开页面的相应页面。这不是一个完美的解决方案,因为您必须在上一页中手动找到断开的链接,但是至少可以使您对它的位置有所了解。
缺点:如您所见,这两种解决方案仅适用于内部断开的链接。
,似乎没有办法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。