【问题标题】:url redirection in IIS not working for non existing pagesIIS 中的 url 重定向不适用于非现有页面
【发布时间】:2017-03-18 16:41:16
【问题描述】:

我有一个页面http://domain1.com/blog.aspx

我已删除此页面,并为此页面创建了一个带有新域的网站。

如下http://domain2.com/blog.aspx

然后我在 domain1.com web.config 中添加了一条规则,如下所示

<rewrite>
    <rules>

     <rule name="Redirect blog" stopProcessing="true">
        <match url=".*" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^domain1.com/blog.aspx$" />
        </conditions>
        <action type="Redirect" url="http://domain2.com/blog.aspx" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>

但访问http://domain1.com/blogpage.aspx时出现404错误

我该如何解决这个问题?

【问题讨论】:

  • 输入模式与主机名后面的 URL 部分匹配,因此从其中删除 domain1.com/

标签: asp.net iis url-rewriting url-routing


【解决方案1】:

一些问题...

{HTTP_HOST} = 主机名 domain1.com,所以它永远不会匹配你的模式

你也可以这样做pattern="^domain1.com/blog.aspx$" . 需要被转义。

现在您还必须匹配request_uri 才能捕获页面。下面应该工作。如果您将domain1.com/blogpage.aspx 重定向到domain2.com/blog.aspx

 <rule name="Redirect blog" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll" >
      <add input="{HTTP_HOST}" pattern="^domain1\.com$" />
      <add input="{REQUEST_URI}" pattern="blogpage\.aspx$" />
    </conditions>
    <action type="Redirect" url="http://domain2.com/blog.aspx" redirectType="Permanent" />
  </rule>
</rules>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2015-09-11
    相关资源
    最近更新 更多