.htaccess實現(xiàn)從Zblog跳轉(zhuǎn)到wordpress

字號:


    用Linux主機的網(wǎng)站可以通過.htaccess做301跳轉(zhuǎn),這個大家都很清楚。
    如果能對.htaccess的規(guī)則非常了解的話,那么使用起來肯定得心應(yīng)手。但是如果不熟悉的話,只能做到只是更換域名不更換文件路徑的跳轉(zhuǎn)。比如從a域名跳轉(zhuǎn)到b域名,只能做到類似a域名/123.html到b域名/123.html。
    但是如果從zblog遷移到wordpress博客程序,那么就需要比如從類似于http://blog.cocold.com/post /25.html 跳轉(zhuǎn)到http://blog.icoa.cn/25.html和從http://blog.cocold.com /catalog.asp?tags=301 跳轉(zhuǎn)到http://blog.icoa.cn/tag/301 等這種更換了域名并更換了博客平臺的情況來說就無能為力了。
    安裝了Wordpress的朋友都知道,Wordpress支持URL靜態(tài)化。實現(xiàn)的方法就是通過在網(wǎng)站根目錄自動創(chuàng)建一個.htaccess的文件,實現(xiàn)所有的url都指向首頁index.php。然后在通過首頁PHP代碼的解析來顯示不同的內(nèi)容。
    于是我將blog.cocold.com指向一個linux主機,然后在網(wǎng)站根目錄創(chuàng)建.htaccess,把Wordpress創(chuàng)建的.htaccess內(nèi)容復制出來放進去:
    # 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的內(nèi)容如下:
    $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)下面的跳轉(zhuǎn):
    http://blog.cocold.com/post/25.html 跳轉(zhuǎn)到 http://blog.icoa.cn/25.html
    http://blog.cocold.com/catalog.asp?tags=301 跳轉(zhuǎn)到 http://blog.icoa.cn/tag/301
    http://blog.cocold.com/catalog.asp?date=2011-5 跳轉(zhuǎn)到 http://blog.icoa.cn/date/2011/05
    ……
    如果還有其他路徑依然可以寫進去。
    完美的實現(xiàn)了從Zblog跳轉(zhuǎn)到wordpress。