綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁服務(wù)器類Web服務(wù)器 → ISAPI_Rewrite 各版本301轉(zhuǎn)向大全(附ISAPI_Rewrite語法規(guī)則)

ISAPI_Rewrite 各版本301轉(zhuǎn)向大全(附ISAPI_Rewrite語法規(guī)則)

我要評論 2015/10/06 14:25:28 來源:綠色資源網(wǎng) 編輯:m.sonlywya.cn [ ] 評論:0 點擊:1032次

終于下定決心放棄之前啟用的二級域名,改回子目錄格式。經(jīng)測試改回子目錄后,百度收錄加快一天收錄多次,現(xiàn)在準(zhǔn)備把之前的二級域名(google/soso都收錄了好幾萬頁)301重定向到子目錄下。使用IIS下301轉(zhuǎn)向方法,但問題出現(xiàn)了,發(fā)現(xiàn)收錄的部分偽靜態(tài)的頁面無法正確重定向,全部重定向首頁。

IIS 做偽靜態(tài)采用的是ISAPI_Rewrite 插件,大家知道ISAPI_Rewrite 不僅可以實現(xiàn)url 重寫,還可以用來設(shè)置301轉(zhuǎn)向(2.x以上才支持,1.3版本僅支持302轉(zhuǎn)向),下面介紹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轉(zhuǎn)向

# 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是現(xiàn)在國內(nèi)應(yīng)用得比較多的一個老版本,它可用于url 重寫,但并不適合用來實現(xiàn)真正的301重定向功能。建議下載最新的ISAPI_Rewrite 3.0 版本。ISAPI_Rewrite 1.3 的在IIS下對域名重定向雖然能夠順利跳轉(zhuǎn),但是返回的仍然是302 HTTP header,而不是301 狀態(tài)碼。而且該段代碼用于301重定向后,在子目錄中的其他頁面都會跳轉(zhuǎn)到首頁。

這樣設(shè)置以后,你的windows iis 也能實現(xiàn)301重定向了,不管是Google 和百度搜索引擎都不會有因為帶有www和不帶www 的域名而產(chǎn)生重復(fù)頁面問題了。

301重定向在線檢測工具:http://www.ab173.com/zhanzhang/getheader.php

 附:ISAPI_Rewrite語法規(guī)則

ISAPI_Rewrite 規(guī)則對大小寫敏感,但可以忽略大小寫了。
I (ignore case)不管大小寫強行指定字符匹配。
例:RewriteRule /code/project/([0-9,a-z]*).html /soft.jsp\?softpy=$1 [I]

其他的參數(shù)一覽
I (ignore case)
不管大小寫強行指定字符匹配,這個FLAG影響RewriteRule指令和相應(yīng)的RewriteCond 指令。

F (Forbidden)
對客戶端做反應(yīng),停止REWRITING進程并且發(fā)送403錯誤,注意在這種情況下FORMATSTRING 是無用的并可以設(shè)置為任何非空字符串。

L (last rule)
不應(yīng)用任何重寫規(guī)則在此停止重寫進程,使用這個FLAG以阻止當(dāng)前被重寫的URI被后面的規(guī)則再次重寫。

N (Next iteration)
強制REWRITINGENGINE調(diào)整規(guī)則目標(biāo)并且從頭重啟規(guī)則檢查(所有修改將保存),重啟次數(shù)由RepeatLimit指定的值限制,如果這個數(shù)值超過N FLAG將被忽略。

NS (Next iteration of the same rule)
以N標(biāo)記工作不從相同的規(guī)則重啟規(guī)則規(guī)則進程(例如強制重復(fù)規(guī)則應(yīng)用),通過RepeatLimit指令指定一個反復(fù)實行某一規(guī)則的最大數(shù)目。

P (force proxy)
強制目的URI在內(nèi)部強制為代理需求并且立即通過ISAPI擴展應(yīng)付代理需求,必須確認(rèn)代理字符串是一個有效的URI包括協(xié)議 主機等等否則代理將返回錯誤。

R (explicit redirect)
強制服務(wù)器對客戶端發(fā)出重定向指示即時應(yīng)答,提供目的URI的新地址,重定向規(guī)則經(jīng)常是最后規(guī)則。

RP (permanent redirect)
幾乎和[R]標(biāo)記相同但是發(fā)布301HTTP狀態(tài)而不是302HTTP狀態(tài)代碼。

U (Unmangle Log)
當(dāng)URI是源需求而不是重寫需求時記載URI。

O (nOrmalize)
在實行之前標(biāo)準(zhǔn)化字符串。標(biāo)準(zhǔn)化包括URL-ENCODING,不合法的字符的再移動等,這個標(biāo)記對于URLS和URLS-ENDODED頭是有用的。

CL (Case Lower)
小寫。

CU (Case Upper)
大寫。

RewriteHeader directive
Syntax: RewriteHeader HeaderName Pattern FormatString [Flags]
這個指令是RewriteRule的更概括化變種,它不僅重寫URL的客戶端需求部分,而且重寫HTTP頭,這個指令不僅用于重寫。生成,刪除任何HTTP頭,甚至改變客戶端請求的方法。

HeaderName
指定將被重寫的客戶頭,可取的值與 RewriteCond 指令中TestVerb參數(shù)相同。

Pattern
限定規(guī)則表達式以匹配Request-URI。

FormatString
限定將生成新的URI的FormatString 。
[Flags]
是一個下列FLAGS的命令分隔列表。

I (ignore case)
不管大小寫強行指定字符匹配,這個FLAG影響RewriteRule指令和相應(yīng)的RewriteCond 指令。
F (Forbidden)
對客戶端做反應(yīng),停止REWRITING進程并且發(fā)送403錯誤,注意在這種情況下FORMATSTRING 是無用的并可以設(shè)置為任何非空字符串。

L (last rule)
不應(yīng)用任何重寫規(guī)則在此停止重寫進程,使用這個FLAG以阻止當(dāng)前被重寫的URI被后面的規(guī)則再次重寫。

N (Next iteration)
強制REWRITINGENGINE調(diào)整規(guī)則目標(biāo)并且從頭重啟規(guī)則檢查(所有修改將保存),重啟次數(shù)由RepeatLimit指定的值限制,如果這個數(shù)值超過N FLAG將被忽略。

NS (Next iteration of the same rule)
以N標(biāo)記工作不從相同的規(guī)則重啟規(guī)則規(guī)則進程(例如強制重復(fù)規(guī)則應(yīng)用),通過RepeatLimit指令指定一個反復(fù)實行某一規(guī)則的最大數(shù)目。

R (explicit redirect)
強制服務(wù)器對客戶端發(fā)出重定向指示即時應(yīng)答,提供目的URI的新地址,重定向規(guī)則經(jīng)常是最后規(guī)則。

RP (permanent redirect)
幾乎和[R]標(biāo)記相同但是發(fā)布301HTTP狀態(tài)而不是302HTTP狀態(tài)代碼。

U (Unmangle Log)
當(dāng)URI是源需求而不是重寫需求時記載URI。

O (nOrmalize)
在實行之前標(biāo)準(zhǔn)化字符串。標(biāo)準(zhǔn)化包括URL-ENCODING,不合法的字符的再移動等,這個標(biāo)記對于URLS和URLS-ENDODED頭是有用的。

CL (Case Lower)
小寫。
CU (Case Upper)
大寫。

關(guān)鍵詞:ISAPI_Rewrite

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2 歡迎喜歡
  • 1 白癡
  • 2 拜托
  • 9 哇
  • 1 加油
  • 34 鄙視