多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > .htaccess在IIS和Apache下有什么區別

.htaccess在IIS和Apache下有什么區別

來源:程序員人生   發布時間:2013-11-12 02:03:26 閱讀次數:2782次
^t_(d+).html$ t.php?id=$1
這個在apache下面可以,但在iis下的isapi_rewrite里可能就不對了
要改成 ^(.*)/t_(d+).html$ $1/t.php?id=$2
加了/,和對?進行了轉義
Apache下
RewriteRule ^company/show_([0-9]+).html$ company.php?uid=$1 [L] //正確,可以不轉義. ?
RewriteRule ^company/show_([0-9]+).html$ company.php?uid=$1 [L] //正確
RewriteRule ^/company/show_([0-9]+).html$ /company.php?uid=$1 [L] //錯誤 加了/就不行了
IIS下
RewriteRule ^(.*)/resume/([0-9]+)/show.html$ /$1/person.php?pid=$2 [L] // 正確
RewriteRule ^(.*)/resume/([0-9]+)/show.html$ /$1/person.php?pid=$2 [L] //錯誤,.?必須轉義
RewriteRule /resume/([0-9]+)/show.html$ /person.php?pid=$1 [L] // 正確
RewriteRule resume/([0-9]+)/show.html$ person.php?pid=$1 [L] // 錯誤,必須加/
RewriteRule /resume/([0-9]+)/show.html$ /person.php?pid=$1 [L] // 錯誤,?必須轉義
總結 iis下必須加 /,.?必須轉義
apache下不能加/
附上htaccess的標記說明
flags
‘redirect|R [=code]‘ (強制重定向 redirect)
以http://thishost[:thisport]/(使新的URL成為一個URI) 為前綴的Substitution可以強制性執行一個外部重定向。 如果code沒有指定,則產生一個HTTP響應代碼302(臨時性移動)。 如果需要使用在300-400范圍內的其他響應代碼,只需在此指定這個數值即可, 另外,還可以使用下列符號名稱之一: temp (默認的), permanent, seeother. 用它可以把規范化的URL反饋給客戶端,如, 重寫“/~”為 “/u/”,或對/u/user加上斜杠,等等。 注意: 在使用這個標記時,必須確保該替換字段是一個有效的URL! 否則,它會指向一個無效的位置! 并且要記住,此標記本身只是對URL加上 http://thishost[:thisport]/的前綴,重寫操作仍然會繼續。 通常,你會希望停止重寫操作而立即重定向,則還需要使用’L’標記.

‘forbidden|F’ (強制URL為被禁止的 forbidden)
強制當前URL為被禁止的,即,立即反饋一個HTTP響應代碼403(被禁止的)。 使用這個標記,可以鏈接若干RewriteConds以有條件地阻塞某些URL。

‘gone|G’ (強制URL為已廢棄的 gone)
強制當前URL為已廢棄的,即,立即反饋一個HTTP響應代碼410(已廢棄的)。 使用這個標記,可以標明頁面已經被廢棄而不存在了.

‘proxy|P’ (強制為代理 proxy)
此標記使替換成分被內部地強制為代理請求,并立即(即, 重寫規則處理立即中斷)把處理移交給代理模塊。 你必須確保此替換串是一個有效的(比如常見的以 http://hostname開頭的)能夠為Apache代理模塊所處理的URI。 使用這個標記,可以把某些遠程成分映射到本地服務器名稱空間, 從而增強了ProxyPass指令的功能。 注意: 要使用這個功能,代理模塊必須編譯在Apache服務器中。 如果你不能確定,可以檢查“httpd -l”的輸出中是否有mod_proxy.c。 如果有,則mod_rewrite可以使用這個功能; 如果沒有,則必須啟用mod_proxy并重新編譯“httpd”程序。

‘last|L’ (最后一個規則 last)
立即停止重寫操作,并不再應用其他重寫規則。 它對應于Perl中的last命令或C語言中的break命令。 這個標記可以阻止當前已被重寫的URL為其后繼的規則所重寫。 舉例,使用它可以重寫根路徑的URL(’/’)為實際存在的URL, 比如, ‘/e/www/’.

‘next|N’ (重新執行 next round)
重新執行重寫操作(從第一個規則重新開始). 這時再次進行處理的URL已經不是原始的URL了,而是經最后一個重寫規則處理的URL。 它對應于Perl中的next命令或C語言中的continue命令。 此標記可以重新開始重寫操作,即, 立即回到循環的頭部。但是要小心,不要制造死循環!

‘chain|C’ (與下一個規則相鏈接 chained)
此標記使當前規則與下一個(其本身又可以與其后繼規則相鏈接的, 并可以如此反復的)規則相鏈接。 它產生這樣一個效果: 如果一個規則被匹配,通常會繼續處理其后繼規則, 即,這個標記不起作用;如果規則不能被匹配, 則其后繼的鏈接的規則會被忽略。比如,在執行一個外部重定向時, 對一個目錄級規則集,你可能需要刪除“.www” (此處不應該出現“.www”的)。

‘type|T=MIME-type’ (強制MIME類型 type)
強制目標文件的MIME類型為MIME-type。 比如,它可以用于模擬mod_alias中的ScriptAlias指令, 以內部地強制被映射目錄中的所有文件的MIME類型為“application/x-httpd-cgi”.

‘nosubreq|NS’ (僅用于不對內部子請求進行處理 no internal sub-request)
在當前請求是一個內部子請求時,此標記強制重寫引擎跳過該重寫規則。 比如,在mod_include試圖搜索可能的目錄默認文件(index.xxx)時, Apache會內部地產生子請求。對子請求,它不一定有用的,而且如果整個規則集都起作用, 它甚至可能會引發錯誤。所以,可以用這個標記來排除某些規則。 根據你的需要遵循以下原則: 如果你使用了有CGI腳本的URL前綴,以強制它們由CGI腳本處理, 而對子請求處理的出錯率(或者開銷)很高,在這種情況下,可以使用這個標記。

‘nocase|NC’ (忽略大小寫 no case)
它使Pattern忽略大小寫,即, 在Pattern與當前URL匹配時,’A-Z’ 和’a-z’沒有區別。

‘qsappend|QSA’ (追加請求串 query string append)
此標記強制重寫引擎在已有的替換串中追加一個請求串,而不是簡單的替換。 如果需要通過重寫規則在請求串中增加信息,就可以使用這個標記。

‘noescape|NE’ (在輸出中不對URI作轉義 no URI escaping)
此標記阻止mod_rewrite對重寫結果應用常規的URI轉義規則。 一般情況下,特殊字符(如’%’, ‘$’, ‘;’等)會被轉義為等值的十六進制編碼。 此標記可以阻止這樣的轉義,以允許百分號等符號出現在輸出中,如: RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
可以使’/foo/zed’轉向到一個安全的請求’/bar?arg=P1=zed’.

‘passthrough|PT’ (移交給下一個處理器 pass through)
此標記強制重寫引擎將內部結構request_rec中的uri字段設置為 filename字段的值,它只是一個小修改,使之能對來自其他URI到文件名翻譯器的 Alias,ScriptAlias, Redirect 等指令的輸出進行后續處理。舉一個能說明其含義的例子: 如果要通過mod_rewrite的重寫引擎重寫/abc為/def, 然后通過mod_alias使/def轉變為/ghi,可以這樣: RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi
如果省略了PT標記,雖然mod_rewrite運作正常, 即, 作為一個使用API的URI到文件名翻譯器, 它可以重寫uri=/abc/…為filename=/def/…, 但是,后續的mod_alias在試圖作URI到文件名的翻譯時,則會失效。
注意: 如果需要混合使用不同的包含URI到文件名翻譯器的模塊時, 就必須使用這個標記。混合使用mod_alias和mod_rewrite就是個典型的例子。

For Apache hackers
如果當前Apache API除了URI到文件名hook之外,還有一個文件名到文件名的hook, 就不需要這個標記了! 但是,如果沒有這樣一個hook,則此標記是唯一的解決方案。 Apache Group討論過這個問題,并在Apache 2.0 版本中會增加這樣一個hook。
’skip|S=num’ (跳過后繼的規則 skip)
此標記強制重寫引擎跳過當前匹配規則后繼的num個規則。 它可以實現一個偽if-then-else的構造: 最后一個規則是then從句,而被跳過的skip=N個規則是else從句. (它和’chain|C’標記是不同的!)

‘env|E=VAR:VAL’ (設置環境變量 environment variable)
此標記使環境變量VAR的值為VAL, VAL可以包含可擴展的反向引用的正則表達式$N和%N。 此標記可以多次使用以設置多個變量。 這些變量可以在其后許多情況下被間接引用,但通常是在XSSI (via or CGI (如 $ENV{’VAR’})中, 也可以在后繼的RewriteCond指令的pattern中通過%{ENV:VAR}作引用。 使用它可以從URL中剝離并記住一些信息。

‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]’ (設置cookie)
它在客戶端瀏覽器上設置一個cookie。 cookie的名稱是NAME,其值是VAL。 domain字段是該cookie的域,比如’.apache.org’, 可選的lifetime是cookie生命期的分鐘數, 可選的path是cookie的路徑。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲区一区 | 国产一级毛片欧美视频 | uuzyz噜噜资源站 | www.激情小说 | 亚洲逼逼 | 亚洲精品久久久久久久无 | 免费在线观看黄色网址 | 中文字幕第6页 | 欧美xx网 | 91欧美精品综合在线观看 | 国产精品一二三区 | 欧美一级视频在线观看欧美 | 亚洲高清毛片 | 亚洲精品不卡午夜精品 | 亚洲视频免费在线观看 | 日韩在线a视频免费播放 | 激情爱爱网 | xxxxx网| 国产精品久久九九 | 国产亚洲欧美在线视频 | 成人久久久精品乱码一区二区三区 | 一级在线免费视频 | 视频一区视频二区在线观看 | 亚洲日韩精品欧美一区二区 | 波多野结衣免费观看视频 | 欧美日韩一区二区三区免费不卡 | 中文字幕乱码系列免费 | 亚洲 欧美 日韩 综合aⅴ视频 | 日本动漫免费在线观看 | 一区二区三区欧美视频 | 欧美成人一区二区三区不卡 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片美女 | 国产性夜夜春夜夜爽 | 免费福利在线 | 亚洲综合福利 | 岛国片欧美一级毛片 | 免费播放春色aⅴ视频 | 91人人视频 | 亚洲色妞 | 中文字幕看片在线a免费 | 日韩专区亚洲精品欧美专区 |