IIS URL重写 - 根据域添加查询字符串var

时间:2013-10-24 18:34:09

标签: iis iis-7 url-rewriting

使用IIS 7的IIS URL重写模块,是否可以完成以下任务:

我有2个域名:domain1.com和domain2.com。这两个领域代表了我们公司的两个不同但非常紧密相关的事件。所以我希望用户管理来自同一CMS的站点数据。

基本上是这样的:

domain1.com和domain2.com引用相同的index.php,并根据QS参数向用户显示相应事件的内容。所以我的index.php将采用以下qs:

  ?

的index.php站点=事件1&安培;朗= EN&安培;路线=家

我想要的是:

  

domain1.com/en/home

     

会参考:

     ?

的index.php站点=事件1&安培;朗= EN&安培;路线=家

  

domain2.com/en/home

     

会参考:

     ?

的index.php站点= EVENT2&安培;朗= EN&安培;路线=家

就像iis url rewrite会在site参数中附加一个基于域的值。

这可能吗?

1 个答案:

答案 0 :(得分:0)

尝试将此IIS重写规则添加到您的web.config:

<rule name="domain1.com" stopProcessing="true">
  <match url="^en/home" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^(domain1.com|www.domain1.com)$" />
  </conditions>
  <action type="Rewrite" url="http://www.domain1.com/index.php?site=event1&lang=en&route=home" logRewrittenUrl="true" />
</rule>
<rule name="domain2.com" stopProcessing="true">
  <match url="^en/home" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^(domain2.com|www.domain2.com)$" />
  </conditions>
  <action type="Rewrite" url="http://www.domain2.com/index.php?site=event2&lang=en&route=home" logRewrittenUrl="true" />
</rule>

这些规则基本上说:

  1. 匹配/ en / home
  2. 的任何请求
  3. 对于domain1.com或www.domain1.com
  4. 将用户重写为正确的网站/活动