为什么 ISAPI Rewrite 做网站301永久重定向时返回302状态码
ISAPI Rewrite确实是个好东西,我们不仅用它可以实现简单的URL重写来实现搜索引擎友好(SEF)的URL形式,还可以利用 ISAPI Rewrite 实现防盗链,今天,我们再来说一下利用ISAPI Rewrite做301永久转向。
301转向(301 Redirect : Permanently Moved),表示内容永久性转移到新的URL,这样搜索引擎就会知道内容已转移,会去抓取新的URL,并把原来的权重完全转移到新的页面,因此是友好的。
域名间的301转向
有时,我们会在域名解析时,创建一个空的主机名,来方便用户输入网址,而省去了www。这样虽然方便了用户,但是从SEO的角度来说,是违反了URL标准化准则的,因此,我们需要对这些不统一的URL进行301重定向。
RewriteRule (.*) http\://www\.webym\.net$1 [I,RP]
RewriteCond %{HTTP:Host} ^webym\.net$
RewriteRule (.*) http\://www\.webym\.net$1 [NC,R=301]
注释:在规则最后有[I,RP]标记,通过查阅ISAPI Rewrite 2官方使用手册我们知道,I表示忽略大小写,RP表示使用301转向
页面间的301转向
当我们改变了某些页面的地址,但是又不想损失流量,就应该使用301转向,将原来的URL重定向到新的URL上,这样搜索引擎会知道页面地址变更,而不会以为这个页面出错消失了。
# For ISAPI_Rewrite 2.x
RewriteRule ^/oldpage.htm$ http://www.webym.net/index.html [I,O,RP,L]
# For ISAPI_Rewrite 3.x
RewriteRule ^/oldpage.htm$ http://www.webym.net/index.html [NC,L,R=301,O]
dim url
url=request.querystring("url")
if Request.ServerVariables("SERVER_NAME")<>"www.webym.net" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.webym.net/test/" & url
Server.Execute(url)
end if