[英]Creating Url Rewrite to a domain - ASP.NET \ IIS 7
我正在将ASP.NET 3.5与IIS 7一起使用,并安装了URL重写模块2.0。
当我创建第一个测试重写规则时:
<rewrite>
<rules>
<rule name="Test rule1" patternSyntax="ExactMatch">
<match url="w/123/test" />
<action type="Rewrite" url="article.aspx?id=123" />
</rule>
</rules>
</rewrite>
它可以完美运行(http://www.myapp.com/w/123/test-> http://www.myapp.com/article.aspx?id=123 )。
但是,当我尝试在自己拥有的域上使用它时,它将无法正常工作。 我认为我的语法有误。 这是我想做的事情:
<rule name="Test Rule2" patternSyntax="ExactMatch">
<match url="http://www.my-domain.com" />
<action type="Rewrite" url="article.aspx?id=123" />
</rule>
当我尝试浏览http://www.my-domain.com
我希望将其重定向到article.aspx
页面,但我没有找到404页面。
我应该如何为域而不是路径编写规则?
预先感谢,加尔。
规则是相对于web.config所在的位置的。 您无需为规则指定任何域。 />的输入将始终是URL路径,没有查询字符串,也没有前导斜线。 这意味着,如果您请求“ http://www.my-domain.com/”,则输入将为“”。 如果您请求“ http://www.my-domain.com/w/123/test”,则输入为“ w / 123 / test”。
如果您只是浏览到http://www.my-domain.com/ ,则IIS中的“默认文档”模块将尝试将您的请求重写为类似http://www.my-domain.com/default.html的内容 ”,这与您的规则不符。 确保禁用默认文档模块。
如果这不起作用,则URL Rewrite具有跟踪功能,您可以在其中逐步查看工作流程:
http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/
注意对于服务器规则,输入URL始终包含前导斜杠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.