捕获所有无效的网址

时间:2011-01-18 22:13:50

标签: php url redirect url-rewriting

我最近升级了一个网站,几乎所有网址都已更改。我已经重定向了所有这些(或者我希望如此)但是有些可能会被我甩掉。有没有办法以某种方式捕获所有无效的URL并将用户发送到某个页面,并以某种方式知道该人来自哪个URL,以便我可以记录这个,并修复它们?我想我可以用某种方式使用.htaccess但不确定如何。我正在使用PHP非常感谢!

3 个答案:

答案 0 :(得分:7)

您可以使用PHP编写的自定义ErrorDocument处理程序来捕获“滑倒”的网址:

# .htaccess file
ErrorDocument 404 /not-found.php

not-found.php

switch($_SERVER['REDIRECT_URL']) {
    case '/really_old_page.php':
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: /new-url/...');
    /*  As suggested in the comment, exit here.
        Additional output might not be handled well and
        provokes undefined behavior. */
        exit;
    default:
        header('HTTP/1.1 404 Not Found');
        die('404 - Not Found');
}

答案 1 :(得分:2)

在网络根目录中的.htaccess

ErrorDocument 404 /yourFile.php

答案 2 :(得分:0)

最简单的方法是在htaccess中添加自定义404重定向。

只需添加以下内容:

ErrorDocument 404 /errors/404.php

到应用程序根目录中的.htaccess(如果需要,创建一个)。并且所有对任何延伸页面的请求都将被重定向到您自己的自定义404页面。