我想要的是将poo.example.com
重定向到poo.example.com/home.ashx
,但我没有使用以下代码;
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
<rule name="Redirect poo.example.com to poo.example.com/home.ashx" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(./)" />
<action type="Redirect" url="https://{HTTP_HOST}/home.ashx" />
</rule>
</rules>
</rewrite>
我在IIS 7.5上。
注意
我厌倦了使用默认文档,但它没有用。我的应用程序是一个asp.net mvc应用程序。它可能与此有关,但这不是问题。我需要使用IIS URL Rewrite功能实现它。
答案 0 :(得分:4)
您可以在IIS中添加home.ashx
作为默认文档(确保它显示在列表的顶部),然后您就不需要对任何URL重写进行操作。
答案 1 :(得分:2)
这将重写(当URL在浏览器中保持不变时,内部重定向):
<rule name="home.ashx" stopProcessing="true">
<match url="^$" />
<action type="Rewrite" url="/home.ashx" />
</rule>
这将重定向(301永久重定向):
<rule name="home.ashx" stopProcessing="true">
<match url="^$" />
<action type="Redirect" url="/home.ashx" />
</rule>
由于源名称和目标URL(poo.example.com
)中的域名相同,因此不需要在规则中指定它 - IIS将自动放置当前域。