2011-01-18 89 views
3

我最近升級的站點,幾乎所有的URL已經改變。我已經重定向了所有的人(或者我希望如此),但有可能他們中的一些人已經溜走了。有沒有辦法以某種方式捕捉所有無效的URL並將用戶發送到某個頁面,並以某種方式知道該人來自哪個URL,這樣我就可以記錄並修復這些?我想我可以使用.htaccess,但不知道如何。我正在使用PHP非常感謝!捕獲所有無效的網址

回答

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'); 
} 
+0

很大,這就是我一直在尋找。我想我可以用.htaccess這種方式捕捉404以外的其他錯誤嗎?謝謝。 – Kentor 2011-01-19 15:23:09

1

在網站根目錄的.htaccess

ErrorDocument 404 /yourFile.php 
0

最簡單的將是添加自定義404重定向htaccess的。

只需添加這樣的事情:

ErrorDocument 404 /errors/404.php 

到的.htaccess(如果需要創建一個)在您的應用程序根。並且所有請求都不會存在的頁面將被重新傳送到您自己的自定義404頁面。