JBo*_*oom 8 asp.net iis redirect url-rewriting iis-8
我有一个网站/应用程序,其中相同的页面运行许多网站(取决于页面显示不同的徽标/ CSS /内容等的URL).我试图强制每个网站域重定向到www.领域的verison.
我在URL Rewrite中使用了默认的规范规则,然后只更改了匹配URL模式:
(.*)
Run Code Online (Sandbox Code Playgroud)
至:
(^domain*)
Run Code Online (Sandbox Code Playgroud)
所以它只会为非www做这个.当前域的版本,不匹配所有域.
我的计划是为每个使用系统将每个域重定向到www的域创建其中一个.版.
当我在IIS中测试模式时,规则匹配(我认为)应该这样做.但是,当我访问该网站时,它不会重定向,它只会停留在非www上.版.
有谁知道我哪里出错或者这是否可能?
谢谢J.
更新 我想尝试并给出一个更好的解释:
我在IIS中设置了一个网站.本网站的页面运行了许多相同类型的网站,每个网站上的样式,徽标和产品都会根据URL进行更改.
所以说我在网站上设置了以下绑定:
www.domain1.com,domain1.com,www.domain2.com,domain2.com,www.domain3.com,domain3.com
该网站将提供一个不同的网站,具有不同的内容,样式等取决于URL.
如果我在URL Rewrite中使用默认的"Canonical domain name"规则,则必须选择一个要转发的域名,因此,如果我选择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>
Run Code Online (Sandbox Code Playgroud)
然后将所有内容转发给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
在测试新网站以添加到现有网站时,我们将它们设置在子域上,因此我还要求子域继续不被重定向.
但问题是在同一个website/web.config文件中执行此操作.
尝试以下操作(归功于/sf/answers/2236862561/上的@Atashbahar ):
<rewrite>
<rules>
<rule name="Add WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://www.{C:0}{PATH_INFO}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2468 次 |
最近记录: |