IIS URL重写删除部分路径

时间:2019-11-27 16:43:11

标签: url-rewrite-module iis-10

由于软件提供者更改了IIS中托管的Programm的URL,因此我现在有很多断开的链接。 该网址曾经是

https://example.com/#/subdomain/and/here/some_more

现在是

 https://example.com/#/and/here/some_more

他们只是删除了路径的第一部分( subdomain

我认为我可以使用URL重写规则修复链接。 我尝试过:

    <rewrite>
        <rules>                
            <rule name="example" stopProcessing="true">
                <match url="(https:\/\/example\.com\/#)(\/subdomain)(\/.*)" ignoreCase="true"/>
                <action type="Redirect" url="https://example.com/#{R:3}" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>

这实际上与“测试模式”匹配,但不会重定向。 enter image description here

我也尝试使用:

url="{R:1}{R:3}

,但仍未发生重定向。我尝试使用其他浏览器没有成功。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

数字符号(#)从片段标识符中分隔URI。客户端永远不要发送未编码的字符。相反,客户端应仅将URI发送到服务器(#之前的所有内容)。因此,您的客户端应用程序(网络浏览器)在#之后不会发送任何信息,我们可以在服务器上记录的URL中看到该信息。因此,您需要做的就是对该字符进行编码。

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference