重定向主页

时间:2011-07-20 13:37:15

标签: asp.net regex iis iis-7 url-rewriting

我想要的是将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功能实现它。

2 个答案:

答案 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将自动放置当前域。