【发布时间】:2016-04-25 05:02:22
【问题描述】:
我有一个网站/应用程序,其中相同的页面运行许多网站(取决于 URL,页面显示不同的徽标/css/内容等)。我试图强制每个网站域重定向到 www。域的版本。
我在 URL 重写中使用默认的规范规则开始,然后只是将匹配 URL 模式更改为:
(.*)
收件人:
(^domain*)
所以它只会对非 www 执行此操作。当前域的版本,并不匹配所有域。
我的计划是为每个使用系统将每个域重定向到 www 的域创建一个。版本。
当我在 IIS 中测试模式时,规则匹配(我认为)它应该这样做。但是当我访问该网站时,它不会重定向,它只是停留在非 www 上。版本。
有谁知道我哪里出错了,或者这是否可能?
谢谢 J.
更新 我想我会尝试给出更好的解释:
我在 IIS 中设置了一个网站。本网站的页面运行多个相同类型的网站,每个网站的风格、标志和产品都因URL而异。
假设我在网站上设置了以下绑定:
www.domain1.com, domain1.com, www.domain2.com, domain2.com, www.domain3.com, domain3.com
该网站将提供一个外观不同的网站,根据 URL 提供不同的内容、样式等。
如果我在 URL 重写中使用默认的“规范域名”规则,您必须选择一个要转发到的域,所以如果我选择 www.domain1.com 它会添加规则:
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.domain1\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.domain1.com/{R:1}" />
</rule>
</rules>
</rewrite>
然后这会将所有内容转发到 www.domain1.com。因此,如果用户访问 domain2.com 或 www.domain2.com,他们将被重定向到 www.domain1.com。
我需要它以便人们被重定向如下:
domain1.com > www.domain1.com
domain2.com > www.domain2.com
domain3.com > www.domain3.com
在测试新网站以添加到现有网站时,我们将它们设置在子域上,因此我还要求子域继续不被重定向。
但问题在于在同一个网站/web.config 文件中执行此操作。
【问题讨论】:
标签: asp.net redirect iis url-rewriting iis-8