2011-09-27 53 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