IIS中的URL重定向不适用于非现有页面

时间:2016-11-04 18:29:04

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

我有一个页面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错误

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

一些问题......

{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>