url IIS 中的重定向不适用于不存在的页面

url redirection in IIS not working for non existing pages

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

我该如何解决这个问题?

几个问题...

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