url 中的“%2b”不适用于 url 重写
"%2b" in url does not work for url rewrite
我在 web.config
中配置了以下 url 重写
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
我有这个 url => http://www.somesite.com/password-reset/dynamicParamValue;token=CfDJ8FDko%2FFet4BBsdmNJE1GyMyr%2FK%2Fzc8XGc788k428wh8A%2BHTxo%2BctYiPPLvhnR9KpGGxY%2By%2B9CTkLYOLk2g%2BIkYmCxVky%2FqI0cEfU5s5eKW6mNLj8J%2BJpPRXCqyMT0wNbdd%2Fczo%2FZPEuwzRpwM4ChWiQ%3D
注意: 在上面 url 我有可选的 angular 参数命名为 token
.
当我在浏览器中点击上面的 url 时,它显示 404 not found。我不知道为什么它给我状态代码 404 以及为什么 url 重写规则不适用于这个特定的 link。其他路线工作正常。这是唯一行不通的路线。
如果我从 url 中删除 % 它确实有效。为什么它不能与路由参数值中的 %2b 一起使用?
请帮助我使这条路线正常工作。
The request filtering module is configured to deny a request that
contains a double escape sequence.
这可能是您遇到的错误。要解决此问题,您需要通过为请求过滤模块添加额外设置来启用双重转义。
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="/"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering allowDoubleEscaping="true"/>
</security>
</system.webServer>
</configuration>
我在 web.config
中配置了以下 url 重写<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
我有这个 url => http://www.somesite.com/password-reset/dynamicParamValue;token=CfDJ8FDko%2FFet4BBsdmNJE1GyMyr%2FK%2Fzc8XGc788k428wh8A%2BHTxo%2BctYiPPLvhnR9KpGGxY%2By%2B9CTkLYOLk2g%2BIkYmCxVky%2FqI0cEfU5s5eKW6mNLj8J%2BJpPRXCqyMT0wNbdd%2Fczo%2FZPEuwzRpwM4ChWiQ%3D
注意: 在上面 url 我有可选的 angular 参数命名为 token
.
当我在浏览器中点击上面的 url 时,它显示 404 not found。我不知道为什么它给我状态代码 404 以及为什么 url 重写规则不适用于这个特定的 link。其他路线工作正常。这是唯一行不通的路线。
如果我从 url 中删除 % 它确实有效。为什么它不能与路由参数值中的 %2b 一起使用? 请帮助我使这条路线正常工作。
The request filtering module is configured to deny a request that contains a double escape sequence.
这可能是您遇到的错误。要解决此问题,您需要通过为请求过滤模块添加额外设置来启用双重转义。
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="/"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering allowDoubleEscaping="true"/>
</security>
</system.webServer>
</configuration>