【问题标题】:Use IIS7 URL Rewriting to redirect all requests使用 IIS7 URL 重写重定向所有请求
【发布时间】:2011-04-06 19:42:09
【问题描述】:

我有一个要关闭的 .NET 站点,我计划使用 web.config 中的重写规则将所有请求重定向到 www.mysite.com。应该是一项简单的任务,但事实并非如此。我已经从文件系统中删除了所有内容,除了一个 Default.aspx 页面和一个默认的 web.config 并使用以下重写规则:

<rule name="Redirect All" stopProcessing="true">
  <match url="^(www\.)?mysite\.com(/.+)$" />
  <action type="Redirect" url="www.mysite.com" appendQueryString="false" />
</rule>

如果我请求www.mysite.com/garbage.aspx,服务器仍在尝试查找garbage.aspx,或我提供的任何其他网址,就好像重写规则不存在一样。 非常令人沮丧。想法?

【问题讨论】:

    标签: asp.net iis url-rewriting


    【解决方案1】:

    您想将所有请求重定向到您的新站点吗?如果是这样,应该这样做:

    <match url=".*" />
    

    【讨论】:

    • 不应该上面的正则表达式有效地完成同样的事情,因为所有请求都将发送到 mysite.com 中的某个页面吗?对于正常工作的规范网址,我有类似的规则。我真的不明白我在哪里搞砸了。
    • 我远非正则表达式专家,但我认为这与您在正则表达式中的分组以及 IIS 重写器使用它们的方式有关。当您尝试我提供的正则表达式时会发生什么?抱歉,我无法对这个特定评论提供更多帮助。
    • 我最终重定向到另一个网站,在这种情况下,您的解决方案就像一个魅力。但是,我认为我必须添加一个规则来否定内部链接,否则重定向规则会循环......我认为我也必须与我的原始规则有关。感谢您的帮助。
    • 我在写这篇文章时对 URL Rewrite 模块的工作原理没有正确理解。规则中的“url”不包括主机名或'/
    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2012-03-25
    • 2013-05-03
    • 1970-01-01
    相关资源
    最近更新 更多