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

字號(hào):


    用Linux主機(jī)的網(wǎng)站可以通過(guò).htaccess做301跳轉(zhuǎn),這個(gè)大家都很清楚。
    如果能對(duì).htaccess的規(guī)則非常了解的話,那么使用起來(lái)肯定得心應(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 等這種更換了域名并更換了博客平臺(tái)的情況來(lái)說(shuō)就無(wú)能為力了。
    安裝了Wordpress的朋友都知道,Wordpress支持URL靜態(tài)化。實(shí)現(xiàn)的方法就是通過(guò)在網(wǎng)站根目錄自動(dòng)創(chuàng)建一個(gè).htaccess的文件,實(shí)現(xiàn)所有的url都指向首頁(yè)index.php。然后在通過(guò)首頁(yè)P(yáng)HP代碼的解析來(lái)顯示不同的內(nèi)容。
    于是我將blog.cocold.com指向一個(gè)linux主機(jī),然后在網(wǎng)站根目錄創(chuàng)建.htaccess,把Wordpress創(chuàng)建的.htaccess內(nèi)容復(fù)制出來(lái)放進(jìn)去:
    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ./index.php [L]
    # END WordPress
    然后新建一個(gè)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);
    ?>
    這樣就可以實(shí)現(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
    ……
    如果還有其他路徑依然可以寫進(jìn)去。
    完美的實(shí)現(xiàn)了從Zblog跳轉(zhuǎn)到wordpress。