我有一个网址有./ [期间&斜杠]在参数的末尾。我想将该网址重定向到不同的位置,但它甚至没有在规则中检测到。我正在使用IIS。我想在web.config
上配置它http://somesitename.com/mypage/teachers-manual./sku/8772
需要重定向
http://somesitename.com/mypage/teachers-manual/sku/8772
虽然我已尝试在Here上提供解决方案,但它甚至没有工作。但是如果我使用相同的东西而不是重定向与重写,那么规则开始工作。不确定为什么它不能用于" 重定向"。
<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>
实际上当我尝试编写规则时,那个./的网址也无效。[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>
不确定错误在哪里。
答案 0 :(得分:0)
了解有关Post&amp; 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