将部分域名重定向/重写至其他域名

将部分域名重定向/重写至其他域名

我遇到了一个问题,我一直想用 URL 重写来解决,但无法让它按照我想要的方式运行。我遇到了一个奇怪的情况。很抱歉这个问题的格式不太好,因为我必须尽快解决这个问题。

我在不同位置有两台服务器。均运行 IIS。

一台服务器有一个默认网站,其中包含许多 Web 应用程序。它们通过以下方式访问:

domain.com/Site1

domain.com/Site2

domain.com/Site3

另一台服务器有

new.domain.com/Site1

new.domain.com/Site3

domain.com/Site1我需要一个自动重定向到的请求new.domain.com/Site1- 但是,我不能domain.com/Site2重定向到任何东西,它必须是该特定子应用程序的规则。最重要的是,任何请求,例如domain.com/Site1/Really/Long/Path....应该重定向到new.domain.com/Site1/Really/Long/Path....

我尝试了很多方法,这是我最近的尝试。它似乎没有起到任何作用,所以显然我没有得到任何东西:

<rewrite>
        <rules>
            <rule name="Datacenter Redirect" patternSyntax="Wildcard">
                <match url="*domain.com*" />
                <action type="Redirect" url="new.domain.com/{R:0}" />
            </rule>
        </rules>
    </rewrite>

有人能给我指出正确的方向吗?我对 IIS 比较熟悉,但对重写并不熟悉。

domain.com 是 IIS 7.5

答案1

我没有任何东西可以测试这个,但我相信应该接近这个......

<rewrite>
        <rules>
            <rule name="Datacenter Redirect" patternSyntax="Wildcard">
                <match url="domain.com/([_0-9a-z-]+)" />
                <action type="Redirect" url="new.domain.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>

R:1 可能需要是 R:2 但我不确定。

然后,如果我没有误解您的问题,那么您就需要设置一个条件,如果您不希望此重定向发生在 Site2 上,则仅对 Site1 执行此操作。

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

相关内容