iis在url末尾用点重写url

时间:2011-10-19 16:02:54

标签: asp.net asp.net-mvc iis rewrite iis-7.5

我有一些外部链接进入我的网站,错误地将一段时间添加到他们的目的。 (所以,我无法解决它们)。由于入站链接总是好的,我想将这些链接重定向到合法页面。我已经在urlrewrite模块中为iis.5尝试了一些规则,似乎没有任何东西可以捕获这个url。

我在这里看到了关于asp.net urls的其他问题,最后有句点,但我试图在IIS重写模块级别捕获这个。关于使这项工作的任何指示?

3 个答案:

答案 0 :(得分:2)

这是一个相当古老的问题,但由于我最近面临类似问题,我决定发布我的调查结果......

我假设在url-rewrite模块之前运行的模块之一终止,但有一个例外,阻止请求继续url-rewrite(我怀疑有些安全检查)。因此,无法使用url-rewrite解决您的问题。

一种可能的解决方法是重定向以点'结尾的请求。'在Global.asax的早期阶段,就像这里:

with open('filepath','r') as f:
    header = np.fromfile(f, dtype=np.int, count=number_of_integers)
    data = np.fromfile(f, dtype=np.float32)

这可能远非最佳答案,但至少可以完成工作;)

答案 1 :(得分:0)

如果您有一组固定不正确的入站链接,您可以专注于重定向URL的主要部分,而不是点。

例如,使用此网址: http://www.example.com/index.html

让您的IIS重写找到匹配“^ index.html。*”的网址,然后重定向到您需要的网页。无论是否有点,都应该捕获URL。

答案 2 :(得分:0)

我使用的解决方案删除了​​web.config级别的所有尾随点:

<rule name="RemoveTrailingDots" stopProcessing="false">
    <match url="^(.*[^.])\.+$" />
    <action type="Rewrite" url="{R:1}" />
</rule>

此规则只是在我的重写规则开始时在内部重写请求URL,允许请求通过正常规则处理而不是被上游捕获

如果您没有更多要应用的规则,并且只想在结尾处重定向带点的任何内容,只需将操作类型更改为Redirect(区分大小写)