Vin*_*hak 1 iis-7 url-rewriting
我正在尝试使用URL Rewrite模块在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>
Run Code Online (Sandbox Code Playgroud)
我在很多例子中都注意到人们已经使用HTTP_HOST变量添加了一个条件......但是这与匹配网址有何关系?似乎我应该能够省略任何条件,因为我的正则表达式完全匹配我想要的.
啊,我终于搞清楚了.显然,可用于匹配的"多少"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作为输入."