0

使用 IIS 7 的 IIS url 重写模块,是否可以完成以下操作:

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

所以基本上:

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

index.php?site=event1&lang=en&route=home

我想要的是:

domain1.com/en/home

将指:

index.php?site=event1&lang=en&route=home

domain2.com/en/home

将指:

index.php?site=event2&lang=en&route=home

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

这是可能的吗?

4

1 回答 1

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. 对于 domain1.com 或 www.domain1.com
  3. 将用户重写到正确的站点/事件
于 2013-10-25T10:16:00.793 回答