IIS URL 重写删除部分路径
IIS URL Rewrite removing part of path
因为软件提供商更改了我的 IIS 中托管的程序的 URL,我现在有很多损坏的链接。
URL 曾经是
https://example.com/#/subdomain/and/here/some_more
现在是
https://example.com/#/and/here/some_more
他们只是去掉了路径的第一部分(子域)
我想我可以用 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>
这实际上在 "Test Pattern" 中匹配,但它不会重定向。
我也试过使用:
url="{R:1}{R:3}
但仍然没有发生重定向。我尝试使用不同的浏览器但没有成功。
感谢帮助
井号 (#) 将 URI 与片段标识符分隔开来。客户端不应该发送未编码的这个字符。相反,客户端应该只将 URI 发送到服务器(# 之前的所有内容)。所以你的客户端应用程序(网络浏览器)在#之后没有发送任何东西,我们可以在服务器上登录的 URL 中看到。所以你需要做的就是对这个字符进行编码。
因为软件提供商更改了我的 IIS 中托管的程序的 URL,我现在有很多损坏的链接。 URL 曾经是
https://example.com/#/subdomain/and/here/some_more
现在是
https://example.com/#/and/here/some_more
他们只是去掉了路径的第一部分(子域)
我想我可以用 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>
这实际上在 "Test Pattern" 中匹配,但它不会重定向。
我也试过使用:
url="{R:1}{R:3}
但仍然没有发生重定向。我尝试使用不同的浏览器但没有成功。
感谢帮助
井号 (#) 将 URI 与片段标识符分隔开来。客户端不应该发送未编码的这个字符。相反,客户端应该只将 URI 发送到服务器(# 之前的所有内容)。所以你的客户端应用程序(网络浏览器)在#之后没有发送任何东西,我们可以在服务器上登录的 URL 中看到。所以你需要做的就是对这个字符进行编码。