实现301转向的N种方法
1.使用PHP的header(),记住要在输出任何网页内容之前使用该函数。
<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://acg.creke.net/');
?>
2.使用.htaccess的RedirectMatch
RedirectMatch 301 ^/$ http://acg.creke.net/ #将根目录直接访问网址的跳到http://acg.creke.net/
RedirectMatch 301 ^/blog/.*$ http://acg.creke.net/ http://acg.creke.net/ #将访问blog文件夹以及访问改文件夹下级的任何请求跳到http://acg.creke.net/
3.使用.htaccess的rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{http_host} ^www.tkz.org.ru [NC]
RewriteRule ^ http://acg.creke.net/ [R=301,L]
</IfModule>
以上的意思是,主机为www.tkz.org.ru就跳到http://acg.creke.net/
#BEGIN Redirect all the URL to the specific domain
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^acg.creke.net [NC]
RewriteRule ^(.*)$ http://acg.creke.net/$1 [R=301,L]
</IfModule>
#END
以上的意思是,重定向所有域名不是acg.creke.net的请求到acg.creke.net的相应URL。
注意的是,RewriteRule的规则是“^(.*)$”而不是“^/(.*)$”,其它的RewriteRule开头都是没有斜杠的。如果是写在httpd.conf的Rewrite规则则有斜杠。