ISAPI_Rewrite 各版本301转向大全

终于下定决心放弃之前启用的二级域名,改回子目录格式。经测试改回子目录后,百度收录加快一天收录多次,现在准备把之前的二级域名(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 的域名而产生重复页面问题了。

301重定向在线检测工具:http://www.itmop.com/tool/getheader.php

附: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)

大写。

(0)

相关推荐

  • 微信5.0版本新功能大全详细介绍

    随着8月初阿里宣布与微信划清界线,与新浪微博联婚推出微淘的事实尘埃落成后,微信这边厢动作也不少,除了与联通合作推出“微信沃卡”外,还于2013年8月5日正式发布微信5.0版本,一如大家所猜想的,微信5 ...

  • Linux指令大全 linux系统管理必备知识

    下面的文章比较长,大家可以查看http://www./linux/index.htm 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--vers ...

  • Win10一周年更新预览版14361安装密钥大全 不能用于激活

    Win10一周年更新预览版14361是第一个对外发布的“1607”版本,之前的预览版(10586正式版后)都还沿用“1511”的大版本号.这次版本号升级并非只是名义上的改变,还有明显版本升级的意味.例 ...

  • 网页显示重复出现问题

    网站重复内容页面过多会造成资源和精力的浪费.关键词的内部竞争,还会分散权重,得不偿失.若是因为站内重复内容页面过多被搜索引擎误判为采集站就麻烦了.    SEO从某种意义上来说,采集站实际上是摘取他人 ...

  • windows7系统基本入门介绍

    Windows 7 (以下简称“win7”) 是由微软公司开发的,具有革命性变化的操作系统。该系统旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境。2010年正式发布,相比之前的微 ...

  • iOS10.1正式版固件在哪下载?iOS10.1正式版固件下载地址

    10月25日消息,苹果在今天凌晨推送了iOS10.1正式版固件更新,更新后系统版本升级至iOS10.1,本文为该版本固件下载大全. 1.固件下载 ▼苹果iOS10.1正式版固件下载大全 iPhone系 ...

  • 域名被墙了怎么办,域名被墙查询检测解决方法

    如果我们注册或是购买到的域名被墙了,那么是无法进行解析的,也就是基本上这个域名是没用的,下面我来说下域名被墙了怎么办,域名被墙查询检测解决方法. 操作方法 01 首先很多人在解析域名的时候,发现自己的 ...

  • 教你如何快速通过百度考验期

    众所周知,百度对新站有一个考验期,大概15至30天.考验期之内只收录新站首页,如果新站在考验期内原创文章和外链都稳步增长,百度就会持续收录内页,直到考验期过后,才把内页放出来.今天笔者前段时间通过前一 ...

  • 怎么给影视大全升级更新到最新版本

    今天给大家介绍一下怎么给影视大全升级更新到最新版本的具体操作步骤.1. 解锁手机后,找到桌面上的影视大全APP,打开.2. 进入主页面后,点击页面右下角的我的选项,在打开的我的页面,找到下方的设置选项 ...