分类分类
关注+2011-01-07作者:清晨
重定向非www的版本到www
如果你的网站同时可以通过两种形式的URL比如说http://helicontech.com和http://www.helicontech.com来访问到,那么最好将一种地址重定向到另一种地址里,来避免搜索引擎对重复内容做出的处罚。下面是一个能将所有的非www地址重定向到相应的www地址上去的301重定向规则。
RewriteEngine onRewriteCond %{HTTPS} (on)?RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]RewriteCond %{REQUEST_URI} (.+)RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]
强制SSL或者非SSL到一个指定的位置
这里是一个演示如何将SSL强制转到指定的文件夹的示例。只要简单地把下面的规则放到该文件夹下的.htaccess文件里就可以了。
RewriteEngine on#Fix missing trailing slash char on foldersRewriteRule ^([^.?]+[^.?/])$ $1/ [R,L]#Redirect non-HTTPS to HTTPSRewriteCond %{HTTP:Host} (.*)RewriteCond %{HTTPS} offRewriteCond %{REQUEST_URI} (.*)RewriteRule .? https://%1%2 [R,L]
而这个示例作用正好相反:将非SSL强制转到指定文件夹。
RewriteEngine on#Fix missing trailing slash char on foldersRewriteRule ^([^.?]+[^.?/])$ $1/ [R,L]#Redirect HTTPS to non-HTTPSRewriteCond %{HTTP:Host} (.*)RewriteCond %{HTTPS} onRewriteCond %{REQUEST_URI} (.*)RewriteRule .? http://%1%2 [R,L]
转移站点位置
当你把网站从一个域名移到另一个域名,或者从一个文件夹移动另一个文件夹里的时候,这是经常会遇到的问题。你希望将一个网站的所有请求重定向到另一个网站里,而且不丢失请求资源名以及参数。当你希望保留现有的网页的排名和外链接的时候,它是非常有用的。这个解决方案是在旧的网站服务器上使用ISAPI_Rewrite:
RewriteEngine on#Permanent redirect to update old linksRewriteRule (.+) http://newserver.com$1 [R=301,L]
平衡负荷仿真
这个示例模拟某种DNS轮换负荷平衡技术。假设你有主站www.mysite.com和数台web服务器分别注册为www[1-9].mysite.com。如果你在主服务器上安装了ISAPI_Rewrite,你可以将初始的客户端请求重定向到几台特定服务器,从而在几台服务器之间随机摊开通讯量。一旦已重定向,客户端将一直使用这一台服务器。虽然这种解决方案并不非常理想,但是它确实能分摊你的通讯量并避免在维护会话状态方面发生的问题。
使用下面的规则来重定向客户端:
RewriteEngine onRewriteMap hosts rnd:hosts.txtRewriteCond %{HTTP:Host} (www)\.mysite.com [NC]RewriteRule (.*) http://${hosts:%1}.mysite.com$1 [R,L]
下面是hosts.txt文件的内容
www www1|www2|www3|www4|www5|www6|www7|www8|www9
你还可以在Apeche文档里找到很多其它有用的例子。它们多数不需要修改就可以在ISAPI_Rewrite3里使用。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论