重定向并绕过 URL 中的句点(点)和斜线
Redirect with bypassing having period (dot) and slash in URL
我有一个 url 参数末尾有 ./ [句号和斜杠]。我想用不同的位置重定向 url 但它甚至没有在规则中检测到。我正在使用 IIS。我想在 web.config
上进行配置
http://somesitename.com/mypage/teachers-manual./sku/8772
需要在
上重定向
http://somesitename.com/mypage/teachers-manual/sku/8772
虽然我已经尝试了 Here 上给出的解决方案,但它甚至不起作用。但是如果我使用相同的东西而不是 Redirect 和 Rewrite 然后规则开始工作。不确定为什么它不适用于“Redirect”。
<rule name="Trailing Dots and spaces" stopProcessing="true">
<match url="^mypage\/(.*)([\.\s]+)\/(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Rewrite" url="/index.cfm/{R:1}/{R:2}/{R:4}" appendQueryString="true" />
</rule>
实际上,当我尝试编写规则时,url 有 ./ 也不起作用。[ http://somesitename.com/mypage/teachers-manual./sku/8772 ]
<rule name="Trailing Dots and spaces1.1" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="http://somesitename.com/newpage.html" />
</rule>
不知道哪里错了。
刚刚获得了更多关于Post & Haacked的信息。
所以我按如下方式修改了文件,现在它非常适合我。
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="Trailing Dots and spaces1.1" stopProcessing="true">
<match url="^(.*)/(.*)\.\/(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="/{R:1}/{R:2}/{R:3}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
.... etc
我有一个 url 参数末尾有 ./ [句号和斜杠]。我想用不同的位置重定向 url 但它甚至没有在规则中检测到。我正在使用 IIS。我想在 web.config
上进行配置http://somesitename.com/mypage/teachers-manual./sku/8772
需要在
上重定向http://somesitename.com/mypage/teachers-manual/sku/8772
虽然我已经尝试了 Here 上给出的解决方案,但它甚至不起作用。但是如果我使用相同的东西而不是 Redirect 和 Rewrite 然后规则开始工作。不确定为什么它不适用于“Redirect”。
<rule name="Trailing Dots and spaces" stopProcessing="true">
<match url="^mypage\/(.*)([\.\s]+)\/(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Rewrite" url="/index.cfm/{R:1}/{R:2}/{R:4}" appendQueryString="true" />
</rule>
实际上,当我尝试编写规则时,url 有 ./ 也不起作用。[ http://somesitename.com/mypage/teachers-manual./sku/8772 ]
<rule name="Trailing Dots and spaces1.1" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="http://somesitename.com/newpage.html" />
</rule>
不知道哪里错了。
刚刚获得了更多关于Post & Haacked的信息。 所以我按如下方式修改了文件,现在它非常适合我。
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="Trailing Dots and spaces1.1" stopProcessing="true">
<match url="^(.*)/(.*)\.\/(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="/{R:1}/{R:2}/{R:3}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
.... etc