.htaccess 参考代码

本文来自网络 (Tsing’s Bloghttp://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)更多例子

Apache的Mod_rewrite 例子

(6)官方最全面的知识

参考:Linux官方有关Apache转向权威技术文档

- THE END -
版权声明:
转载原创文章请注明,文章出处:http://kinggoo.com
原文地址:http://kinggoo.com/internet-zhuanzai-htaccess.htm
发表评论?

0 条评论。

发表评论