大多数小站长使用虚拟主机进行网站,Linux主机很容易说,可以使用。htaccess文件写伪静态规则,因为Windows虚拟主机站长头疼,因为大多数没有IIS权限,所以他们不能做,虽然村博客改变域名做301,但只实现主页301,其他页面是302,因为主机功能有限。
但现在越来越多的Windows空间开始支持urlrewrite伪静态,这是通过httpd.ini实现的,即ISAPI_rewriter组件。ISAPI_rewriter组件也可以实现防盗链的功能。所以这次我们来介绍一下如何使用httpd.ini进行301重定向。
要做301,你的空间必须满足两个条件。
1.你的空间应该支持伪静态。
2.你应该确保你空间的ISAPI_Rewriter是2.X以上的版本,最好是3.X。为什么?ISAPI_Rewriter1.3版本不能实现301吗?以后再说。
以我自己的域名为例。
1.将无www的域名重定向带www的域名。
这通常是为了增加权重,即访问xxxx.me时自动跳转到ww.xxxx.me,当然xxxx.me/*也会跳转到ww.xxxx.me/*。
#2.x版本。
[ISAPI_Rewriter]
condHost:^xxxx\.com$。
Rewriterule(.*)http://www\.xxxx\.com$1[I,RP]
#3.x版本。
RewriteCond%{HTTP:Host}^xxxx.com$。
Rewriterule(.*)http\://www\.xxxx\.com$1[NC,R=301]
当然,如果你换域名做301重定向,只需要把第一行换成你的老域名。
实现伪静态页面。
例如,将文章ww.xxxx.me/aspP=xx伪成ww.xxxx.me/xx.html(xx代表数字)
Rewriterule([0-9]+)\
3.不同页面之间的301跳转。
例如,将根目录的2.html跳转到3.html。
#2.x
Rewriterule/2.html$http://ww.xxxx.me/3.html[I,O,RP,L]
#3.x
Rewriterule/2.html$http://ww.xxxx.me/3.html[NC,L,R=301,O]
下面回答一开始提出的问题,为什么isapi2.X版以上。因为1.3版只能实现302和302,也就是暂时转向,对搜索引擎不是很友好。当然isapi1.3版也可以实现301,思路是新建301.asp文件,然后302到301.asp文件,301.asp文件放301代码。
现在推荐3.x版,但是现在的空间大多是预装1.3版,2.x次之。