2011-09-27 24 views
1

我在IIS7上使用ISAPI重寫。
我們如何在RewriteCond中結合[NC]和[OR]? [NC,OR]? 什麼是匹配有和沒有「www」的域的簡單方法。 ?如何使用RewriteCond結合標誌?

這裏是一個草案:

RewriteCond %{HTTP_HOST} ^old-one.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.old-one.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^old-two.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.old-two.com$ [NC] 
RewriteRule ^(.*)$ http://www.new-website.com/$1 [QSA,L,R=301] 

回答

7

是,[NC,OR]是這兩個標誌相結合的方式。

要多類似條件合併成一個,試試這個:

RewriteCond %{HTTP_HOST} ^(old-one\.com|www\.old-one\.com|old-two\.com|www\.old-two\.com)$ [NC] 
RewriteRule .* http://www.new-website.com%{REQUEST_URI} [L,R=301] 

附: 既然你是在IIS 7上,爲什麼不使用他們的本地重寫引擎(URL重寫模塊) - 是的,它有不同的語法(不.Apache的.htaccess,但標準的web.config XML文件),但工作正常性能問題在我的服務器上)。

+0

謝謝!重寫模塊可以使用文件(如.htaccess)進行管理嗎?還是我們有義務使用IIS控制檯? (我不想被迫向我的主機提供商詢問操作)。 – Spilarix

+1

是的 - 所有設置都可以通過'web.config'文件控制(除非IIS被指示僅將這些設置保存在主配置文件中(出於安全原因?) - 這是可配置的(如果您完全可以控制服務器))。 – LazyOne