微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – IIS URL重写 – 具有多个域

我有一个网站/应用程序,其中相同的页面运行许多网站(取决于页面显示不同的徽标/ CSS /内容等的URL).我试图强制每个网站域名重定向到www.领域的verison.

我在URL Rewrite中使用认的规范规则然后只更改了匹配URL模式:

(.*)

至:

(^domain*)

所以它只会为非www做这个.当前域的版本与所有域不匹配.

我的计划是为每个使用系统将每个域重定向到www的域创建其中一个.版.

当我在IIS中测试模式时,规则匹配(我认为)应该这样做.但是当我去网站时它没有重定向,它只停留在非www上.版.

有谁知道我哪里出错或者这是否可能?

谢谢
J.

UPDATE
我想我会试着给出一个更好的解释:

我在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>

然后将所有内容转发给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文件中执行此操作.

解决方法

请尝试以下方法(在 https://stackoverflow.com/a/31955179/2664650获得@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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐