我有一些外部链接进入我的网站,错误地将一段时间添加到他们的目的。 (所以,我无法解决它们)。由于入站链接总是好的,我想将这些链接重定向到合法页面。我已经在urlrewrite模块中为iis.5尝试了一些规则,似乎没有任何东西可以捕获这个url。
我在这里看到了关于asp.net urls的其他问题,最后有句点,但我试图在IIS重写模块级别捕获这个。关于使这项工作的任何指示?
答案 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
(区分大小写)