用Linux主機的網(wǎng)站可以通過.htaccess做301跳轉,這個大家都很清楚。
如果能對.htaccess的規(guī)則非常了解的話,那么使用起來肯定得心應手。但是如果不熟悉的話,只能做到只是更換域名不更換文件路徑的跳轉。比如從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靜態(tài)化。實現(xiàn)的方法就是通過在網(wǎng)站根目錄自動創(chuàng)建一個.htaccess的文件,實現(xiàn)所有的url都指向首頁index.php。然后在通過首頁PHP代碼的解析來顯示不同的內容。
于是我將blog.cocold.com指向一個linux主機,然后在網(wǎng)站根目錄創(chuàng)建.htaccess,把Wordpress創(chuàng)建的.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的內容如下:
$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);
?>
這樣就可以實現(xiàn)下面的跳轉:
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
……
如果還有其他路徑依然可以寫進去。
完美的實現(xiàn)了從Zblog跳轉到wordpress。
更多信息請查看IT技術專欄