ISAPI_rewrite中文手冊附多站點配置方法
更新時間:2007年07月19日 00:00:00 作者:
在NT 2000 XP和2003平臺上,在系統(tǒng)帳戶下應(yīng)該INETINFO程序應(yīng)該與IIS5以共存模式過濾器運行。所以系統(tǒng)帳戶應(yīng)該給予對所有的ISAPI-REWIRITE DLLS 和所有的HTTPD
Code:
[ISAPI_Rewrite]
RewriteRule (.*?\.asp)(\?[^~]*)?~([^~]*)~([^~]*)(.*) $1(?2$2&:\?)$3=$4$5 [NS,I]
Running servers behind IIS
假如我們有一個內(nèi)網(wǎng)服務(wù)器運行IIS而幾個公司服務(wù)器運行其他平臺,這些服務(wù)器不能從INTERNET直接進入,而只能從我們公司的網(wǎng)絡(luò)進入,有一個簡單的例子可以使用代理標(biāo)記映射其他服務(wù)器到IIS命名空間:
Code:
[ISAPI_Rewrite]
RewriteProxy /mappoint(.+) http\://sitedomain$1 [I,U]
Moving sites from UNIX to IIS
這個規(guī)則可以幫助你把URL從 /~username 改變到 /username 和從 /file.html 改變到 /file.htm. 這個在你僅僅把你的站從UNIX移動到IIS并且保持搜索引擎和其他外部頁面對老頁面的連接時是有用的
Code:
[ISAPI_Rewrite]
#redirecting to update old links
RewriteRule (.*)\.html $1.htm
RewriteRule /~(.*) http\://myserver/$1 [R]
Moving site location
許多網(wǎng)管問這樣的問題:他們要重定向所有的請求到一個新的網(wǎng)絡(luò)服務(wù)器,當(dāng)你需要建立一個更新的站點取代老的的時候經(jīng)常出現(xiàn)這樣的問題,解決方案是用ISAPI_Rewrite 于老服務(wù)器中
Code:
[ISAPI_Rewrite]
#redirecting to update old links
RewriteRule (.+) http\://newwebserver$1 [R]
Browser-dependent content
Dynamically generated robots.txt
robots.txt是一個搜索引擎用來發(fā)現(xiàn)能不能被索引的文件,但是為一個大站創(chuàng)建一個有許多動態(tài)內(nèi)容的這個文件是很復(fù)雜的工作,我們可以寫一個robots.asp script
現(xiàn)在使用單一規(guī)則生成 robots.txt
Code:
[ISAPI_Rewrite]
RewriteRule /robots\.txt /robots.asp
Making search engines to index dynamic pages
站點的內(nèi)容存儲在XML文件中,在服務(wù)器上有一個/XMLProcess.asp 文件處理XML文件并返回HTML到最終用戶,URLS到文檔有如下形式
http://www.mysite.com/XMLProcess.asp?xml=/somdir/somedoc.xml
但是許多公共引擎不能索引此類文檔,因為URLS包含問號(文檔動態(tài)生成),
ISAPI_Rewrite可以完全消除這個問題
Code:
[ISAPI_Rewrite]
RewriteRule /doc(.*)\.htm /XMLProcess.asp\?xml=$1.xml
現(xiàn)在使用如同http://www.mysite.com/doc/somedir/somedoc.htm的URL進入文檔,搜索引擎將不知道不是somedoc.htm 文件并且內(nèi)容是動態(tài)生成的
Negative expressions (NOT
有時當(dāng)模式不匹配你需要應(yīng)用規(guī)則,這種情況下你可以使用在規(guī)則表達式中稱為Forward Lookahead Asserts
例如你需要不使用IE把所有用戶移動到別的地點
Code:
[ISAPI_Rewrite]
# Redirect all non Internet Explorer users
# to another location
RewriteCond User-Agent: (?!.*MSIE).*
RewriteRule (.*) /nonie$1
Dynamic authentification
例如我們在站點上有一些成員域,我們在這個域上需要密碼保護文件而我們不喜歡用BUILT-IN服務(wù)器安全,這個情況下可以建立一個ASP腳本(稱為proxy.asp),這個腳本將代理所有請求到成員域并且檢查請求允許,這里有一個簡單的模板你可以放進你自己的授權(quán)代碼
現(xiàn)在我們要通過配置 ISAPI_Rewrite 通過這個頁面代理請求:
Code:
[ISAPI_Rewrite]
# Proxy all requests through proxy.asp
RewriteRule /members(.+) /proxy.asp\?http\://mysite.com/members$1
Blocking inline-images (stop hot linking
假設(shè)我們在http://www.mysite.com/下有些頁面有一些內(nèi)聯(lián) GIF圖片很好,他人可以不直接協(xié)商通過盜鏈到他們的頁面上,我們不喜歡這樣因為加大了服務(wù)器流量
當(dāng)我們不能100%保護圖片,我們至少可以在瀏覽器發(fā)送一個HTTP Referer header的地方限制這種情況
Code:
[ISAPI_Rewrite]
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png) /block.gif [I,O]
多站點配置:
只需要將httpd.ini文件放置到相應(yīng)站點的根目錄下即可
ISAPI_rewrite 實現(xiàn)IIS二級域名無限的方法
我要實現(xiàn)的是類似的例子:
http://xxxx.aaa.com 實際訪問http://aaa.com/bbb.asp?id=xxxx
http://xxxx.aaa.com/index.html 實際訪問http://aaa.com/bbb.asp?id=xxxx
http://xxxx.aaa.com/intro.html 實際訪問http://aaa.com/intro.asp?id=xxxx
網(wǎng)上很多都給出了一部分,但是不全,也有很多網(wǎng)友在問怎么能實現(xiàn)這樣得東西,也沒有人解答
做了很多例子后,終于實驗出來了
復(fù)制代碼 代碼如下:
RewriteCond Host: (?!www.)([^.]+).aaa.com
RewriteRule ^(.*)/ /bbb.asp\?id=$1
RewriteCond Host: (?!www.)([^.]+).aaa.com
RewriteRule ^(.*)/index\.html /bbb.asp\?id=$1
RewriteCond Host: (?!www.)([^.]+).aaa.com
RewriteRule ^(.*)/intro\.html /intro.asp\?id=$1
相關(guān)文章
ntoskrnl.exe丟失系統(tǒng)無法啟動的解決方法
ntoskrnl.exe文件丟失或損壞,系統(tǒng)無法啟動的解決方法2008-08-08資料:引起內(nèi)存不能“read”的原因及“written”的解決方案
資料:引起內(nèi)存不能“read”的原因及“written”的解決方案...2007-01-01