本文来自网络 (Tsing’s Blog) http://qingyan.net/archives/122#comment-7
关于htaccess转向的一些例子。将来也许会用得着的东西,先写在这里备用,以免到时找得头大。毕竟这是Apache方面的知识,自己一窍不通。
怎样做301转向
(1)单页面转向
-------------
比如把/old.htm转到http://www.domain.com/new.htm
可以用这个指令:
redirect 301 /old.htm http://www.domain.com/new.htm
------------
(2)域名整体转向
如果要把所有http://domain.com形式的URL用301重定向转到 http://www.domain.com,包括:
http://domain.com/about.htm
转到 http://www.domain.com/about.htm
及
http://domain.com/dir/index.htm
转到 http://www.domain.com/dir/index.htm
等等,要用到mod_rewrite:
-------------
RewriteEngine on
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
-------------
(3)一些有用的重写规则:
-------------
RewriteCond %{REQUEST_FILENAME} !-f //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)RewriteCond %{REQUEST_FILENAME} !-d //#如果目录存在就直接访问目录不进行RewriteRule
RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite
-------------
(4)根据子域名不同进行跳转
是如果你的地址是host1或host2或host3的时候,则就跳到对test.php。从这里可以看出,RewriteCond语句之间默认的是AND,如果想要OR,则要明确的写出来。
-------------
RewriteCond %{REMOTE_HOST} ^host1.* [OR]
RewriteCond %{REMOTE_HOST} ^host2.* [OR]
RewriteCond %{REMOTE_HOST} ^host3.*
RewriteRule (.*)$ test.php
-------------
(5)更多例子
(6)官方最全面的知识
0 条评论。