欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > 服务器 > ISAPI_Rewrite 各版本301转向大全(附ISAPI_Rewrite语法规则)

ISAPI_Rewrite 各版本301转向大全(附ISAPI_Rewrite语法规则)

2018-08-01 3130 收藏 0 赞一个 0 真差劲 0 去评论

终于下定决心放弃之前启用的二级域名,改回子目录格式。经测试改回子目录后,百度收录加快一天收录多次,现在准备把之前的二级域名(google/soso都收录了好几万页)301重定向到子目录下。使用IIS下301转向方法,但问题出现了,发现收录的部分伪静态的页面无法正确重定向,全部重定向首页。

iis做伪静态采用的是ISAPI_Rewrite 插件,大家知道ISAPI_Rewrite 不仅可以实现url 重写,还可以用来设置301转向(2.x以上才支持,1.3版本仅支持302转向),下面介绍ISAPI Rewrite做301重定向的方法:

1.将不带www的顶级域名301重定向到带www的域名

# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^downcc\.com$
RewriteRule (.*) http\://www\.downcc\.com$1 [I,RP]
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^downcc\.com$
RewriteRule (.*) http\://www\.downcc\.com$1 [NC,R=301]

2.不同域名之间的301转向

# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^downcc\.cn$
RewriteRule (.*) http\://www\.downcc\.com$1 [NC,R=301]
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^www\.downcc\.cn$
RewriteRule (.*) http\://www\.downcc\.com$1 [NC,R=301]

3.将页面301重定向到另外一个页面

# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://downcc.com/dll.html[I,O,RP,L]
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://downcc.com/dll.html[NC,L,R=301,O]

注意:ISAPI_Rewrite 1.3是现在国内应用得比较多的一个老版本,它可用于url 重写,但并不适合用来实现真正的301重定向功能。建议下载最新的ISAPI_Rewrite 3.0 版本。ISAPI_Rewrite 1.3 的在IIS下对域名重定向虽然能够顺利跳转,但是返回的仍然是302 HTTP header,而不是301 状态码。而且该段代码用于301重定向后,在子目录中的其他页面都会跳转到首页。

这样设置以后,你的windows iis 也能实现301重定向了,不管是Google 和百度搜索引擎都不会有因为带有www和不带www 的域名而产生重复页面问题了。

 附:ISAPI_Rewrite语法规则

ISAPI_Rewrite 规则对大小写敏感,但可以忽略大小写了。

I (ignore case)不管大小写强行指定字符匹配。

例:RewriteRule /code/project/([0-9,a-z]*).html /soft.jsp\?softpy=$1 [I]其他的参数一览I (ignore case)
不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond 指令。

F (Forbidden)

对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。L (last rule)

不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写。

N (Next iteration)

强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过N FLAG将被忽略。

NS (Next iteration of the same rule)

以N标记工作不从相同的规则重启规则规则进程(例如强制重复规则应用),通过RepeatLimit指令指定一个反复实行某一规则的最大数目。

P (force proxy)

强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求,必须确认代理字符串是一个有效的URI包括协议 主机等等否则代理将返回错误。

R (explicit redirect)强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则。

RP (permanent redirect)

几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码。

U (Unmangle Log)

当URI是源需求而不是重写需求时记载URI。

O (nOrmalize)

在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的。

CL (Case Lower)小写。

CU (Case Upper)大写。

RewriteHeader directive

Syntax: RewriteHeader HeaderName Pattern FormatString [Flags]这个指令是RewriteRule的更概括化变种,它不仅重写URL的客户端需求部分,而且重写HTTP头,这个指令不仅用于重写。生成,删除任何HTTP头,甚至改变客户端请求的方法。

HeaderName

指定将被重写的客户头,可取的值与 RewriteCond 指令中TestVerb参数相同。

Pattern

限定规则表达式以匹配Request-URI。

FormatString限定将生成新的URI的FormatString 。

[Flags]

是一个下列FLAGS的命令分隔列表。

I (ignore case)不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond 指令。

F (Forbidden)对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。

L (last rule)

不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写。

N (Next iteration)

强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过N FLAG将被忽略。

NS (Next iteration of the same rule)以N标记工作不从相同的规则重启规则规则进程(例如强制重复规则应用),通过RepeatLimit指令指定一个反复实行某一规则的最大数目。

R (explicit redirect)

强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则。

RP (permanent redirect)

几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码。

U (Unmangle Log)

当URI是源需求而不是重写需求时记载URI。

O (nOrmalize)

在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的。

CL (Case Lower)小写。

CU (Case Upper)大写。

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论