IIS 7 URL重写URL匹配(IIS 7 URL Rewrite Match URL)

2019-06-25 10:58发布

我试图设置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变量的条件例子......但是,这如何涉及到匹配的网址? 看来我应该能够省略任何条件,因为我正则表达式匹配正是我想要的。

Answer 1:

啊,我终于想通了。 显然,如何“多”的网址是可用于进行匹配取决于在目录层次结构中的web.config的位置。 自从我把代码在网站根目录中的web.config,它只能匹配域名后什么(即它可以在'blog.com/'之后匹配所有http://www.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 ,并重写规则在/内容目录中定义,那么规则得到这个URL字符串的Default.aspx作为输入“。



文章来源: IIS 7 URL Rewrite Match URL