重定向并绕过 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 上给出的解决方案,但它甚至不起作用。但是如果我使用相同的东西而不是 RedirectRewrite 然后规则开始工作。不确定为什么它不适用于“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