用 Linux 主機的網站可以通過.htaccess 做 301 跳轉,這個大家都很清楚。
如果能對.htaccess 的規則非常瞭解的話,那麼使用起來肯定得心應手。但是如果不熟悉的話,只能做到只是更換域名不更換文件路徑的跳轉。比如從 a 域名跳轉到 b 域名,只能做到類似 a 域名/123.html 到 b 域名/123.html 。
但是如果從 zblog 遷移到 WordPress 博客程序,那麼就需要比如從類似於 http://blog.cocold.com/post
/25.html
跳轉到 http://blog.icoa.cn/25.html 和從 http://blog.cocold.com
/catalog.asp?tags=301 跳轉到 http://blog.icoa.cn/tag/301 等這種更換了域名並更換了博客平台的情況來説就無能為力了。
安裝了 WordPress 的朋友都知道,WordPress 支持 URL 靜態化。實現的方法就是通過在網站根目錄自動創建一個.htaccess 的文件,實現所有的 url 都指向首頁 index.php 。然後在通過首頁 PHP 代碼的解析來顯示不同的內容。
於是我將 blog.cocold.com 指向一個 linux 主機,然後在網站根目錄創建.htaccess,把 WordPress 創建的.htaccess 內容複製出來放進去:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
然後新建一個 index.php 放到根目錄下,index.php 的內容如下:
<?php $pageurl=str_replace("/post", "", $_SERVER[REQUEST_URI]); $pageurl=str_replace("/catalog.asp?tags=", "/tag/", $pageurl); $pageurl=str_replace("&page=", "/page/", $pageurl); $pageurl=str_replace("/catalog.asp?date=", "/date/", $pageurl); $pageurl=str_replace("-", "/", $pageurl); Header("HTTP/1.1 301 Moved Permanently"); header("location: http://blog.icoa.cn/".$pageurl); ?>
這樣就可以實現下面的跳轉:
http://blog.cocold.com/post/25.html 跳轉到 http://blog.icoa.cn/25.html
http://blog.cocold.com/catalog.asp?tags=301 跳轉到 http://blog.icoa.cn/tag/301
http://blog.cocold.com/catalog.asp?date=2011-5 跳轉到 http://blog.icoa.cn/date/2011/05
……
如果還有其他路徑依然可以寫進去。
原文地址:逍遙博客 http://blog.icoa.cn/411.html,轉載請註明出處!