IIS 重写模块 - URL 末尾的编码空格,查找重写规则以重定向页面

本文关键字:重写规则 查找 重定向 空格 编码 模块 重写 URL IIS | 更新日期: 2023-09-27 18:31:06

我有一个讨厌的小问题。我正在使用带有重写模块的 MVC 3。有一个从另一个网站链接到我的网站的链接,如下所示:

hxxp:www.mysite.com/%20

即其他网站广告 %20(编码空格字符)到其网址的末尾。

现在我需要将此链接重定向到主站点,如下所示:

hxxp://www.mysite.com/

否则,它会给出 404 未找到错误。

现在的问题我尝试了不同的重写规则,但似乎没有什么可以重定向网站,例如

<rule name="redirect space" stopProcessing="true">
          <match url="^hxxp://www.mysite.com/%20" />
          <action type="Redirect" url="hxxp://www.mysite.com/" redirectType="Permanent" />
        </rule>

和许多其他组合,但似乎没有什么可以解决它,并且在每种情况下都会给出 404 个错误。

IIS 重写模块 - URL 末尾的编码空格,查找重写规则以重定向页面

尝试为空格添加一些变体:编码的、解码的和空格字符,如下所示:

<rule name="redirect space" stopProcessing="true">
  <match url="^hxxp://www.mysite.com/((%20)|' |'s)+" />
  <action type="Redirect" url="hxxp://www.mysite.com/" redirectType="Permanent" />
</rule>

更多信息可以在这里找到:

  • 使用 URL 重写模块
  • ASP.NET MVC 和新的 IIS7 重写模块
  • 为 URL 重写模块创建重写规则
  • 为 URL 重写模块开发规则模板

如果这仍然不起作用,您必须编写自己的 rewite 模块。您可以在此处查看更多详细信息:

将 Url 中的 %20 替换为 - 在 C#.net web.config 中