用 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,转载请注明出处!