我最近升级了一个网站,几乎所有的 URL 都发生了变化。我已经重定向了所有 URL(或者我希望如此),但可能有些 URL 被我忽略了。有没有办法以某种方式捕获所有无效 URL 并将用户发送到某个页面,并以某种方式知道该用户来自哪个 URL,以便我可以记录此问题并修复这些问题?我想我可以以某种方式使用 .htaccess,但不确定如何使用。我正在使用 PHP 非常感谢!
错误文件已经在 .htaccess 中,但似乎没有什么改变,您可以看到下面的错误文件
AddHandler application/x-httpd-php5s .php
ErrorDocument 404 /content/404.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
要查看问题,我想要的结果是,如果有人输入了错误的网址,我需要一些东西来重定向,只需检查链接,即使你删除网址末尾的一半位置,它仍然会打开 http://adsbuz.com/classifieds/阿布扎比-uae/
它应该转到错误页面,但它没有,我需要某种力量将它推到错误页面,谢谢
答案1
您可以创建自定义 404 文件。假设您使用的是 Apache,则需要将以下行添加到 .htaccess 中
ErrorDocument 404 /errorfilename.php
这段代码基本上告诉服务器,如果用户遇到 404(页面未找到)错误,则显示 errorfilename.php。
在这个 PHP 文件中,你可以添加代码,当用户访问 404 页面时向你发送电子邮件,或者添加其他逻辑来支持
- 数据库存储
- 写入文件/自定义日志
- 在数据库中搜索文件位置并将用户重定向到新目的地
在 PHP 中,要获取 404 页面的位置,可以使用以下全局变量
$_SERVER['HTTP_REFERER']
404.php 页面示例
<?php
$referer = $_SERVER['HTTP_REFERER'];
//this is where you would either email yourself the $referer,
//insert it into a database or perform more complex operations.
?>
<html>
<head>
<title>404</title>
<body>
Sorry, the page you are looking for has been moved/deleted.<br>
The system administration has been notified of this error.<br>
<a href="index.php">Go to Homepage</a>
</body>
</html>