【问题标题】:IIS 7 URL Rewrite Match URLIIS 7 URL 重写匹配 URL
【发布时间】:2015-09-12 08:39:19
【问题描述】:

我正在尝试使用 URL 重写模块在 IIS 7 中设置规范的默认 URL。我认为我误解了“匹配 URL”字段的使用方式。以下似乎没有做任何事情:

    <rewrite>
        <rules>
            <rule name="EnforceDefaultPage">
                <match url="^http://(?:www\.)?mydomain\.com(?:/)?(?:blog\.aspx)?$" />
                <action type="Redirect" url="http://www.mydomain.com/blog" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite> 

我注意到在很多示例中人们使用 HTTP_HOST 变量添加了一个条件......但这与匹配 url 有什么关系?看来我应该可以省略任何条件,因为我的正则表达式完全符合我的要求。

【问题讨论】:

    标签: iis-7 url-rewriting


    【解决方案1】:

    啊,我终于想通了。显然,有多少 URL 可用于匹配取决于 web.config 在目录层次结构中的位置。由于我将代码放在 web 根目录的 web.config 中,因此它只能匹配域名之后的任何内容(即它可以匹配 'http://www.blog.com/' 中的 'blog.com/' 之后的所有内容)。

    我在这里找到了答案:http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

    "请注意,传递给分布式规则的输入 URL 字符串始终相对于定义规则的 Web.config 文件的位置。例如,如果对 http://www.mysite.com/content/default.aspx?tabid=2&subtabid=3 发出请求,并且重写规则在 /content 目录中定义,则规则获取此 URL 字符串 default.aspx 作为输入。"

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 2011-01-14
      • 2013-07-01
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2013-10-09
      相关资源
      最近更新 更多