繁体   English   中英

创建Url重写到域-ASP.NET \\ IIS 7

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM