绕过具有句点(点)和URL中的斜杠的重定向

时间:2016-10-19 15:05:41

标签: .htaccess iis web-config isapi-rewrite isapi-redirect

我有一个网址有./ [期间&斜杠]在参数的末尾。我想将该网址重定向到不同的位置,但它甚至没有在规则中检测到。我正在使用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>

不确定错误在哪里。

1 个答案:

答案 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