【问题标题】:IIS7 Url Rewrite - Why does Redirect work and Rewrite does not?IIS7 Url Rewrite - 为什么 Redirect 有效而 Rewrite 无效?
【发布时间】:2012-03-20 10:39:09
【问题描述】:

我想要做的是将子域重写到主应用程序,并将指定的子域附加到查询字符串上。例如,“http://a.main.com”应该重写为“http://www.main.com/default.aspx?SD=a”。

这是我的重写规则:

<rule name="SubDomain" stopProcessing="true">
  <match url="^$" />
  <conditions trackAllCaptures="false">
    <add input="{HTTP_HOST}" pattern="^([A-Za-z0-9]+)\.main\.com$" />
  </conditions>
  <action type="Rewrite" url="http://www.main.com/default.aspx?SD={C:1}" logRewrittenUrl="false" />
</rule>

当我将浏览器导航到“http://a.main.com”时,我收到 404。但是,当我将规则更改为重定向规则时,它会正确重定向。它在设置为重定向模式时有效,但在设置为重写模式时无效,这让我非常困惑。怎么回事?

仅供参考,我的 HOSTS 文件已设置为 www.main.com 和 a.main.com 都指向 127.0.0.1。该网站在 IIS7 中的唯一绑定将其主机名属性设置为 127.0.0.1。

【问题讨论】:

    标签: iis-7 url-rewriting


    【解决方案1】:

    需要删除节点 url 属性的“http://www.main.com/”部分。这是它现在的样子:

    <action type="Rewrite" url="default.aspx?SD={C:1}" logRewrittenUrl="false" />
    

    这行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 2011-04-04
      • 2013-07-18
      • 2011-03-21
      • 2011-04-03
      相关资源
      最近更新 更多