Iis Url重写:将一个页面重定向到另一个页面

Iis Url重写:将一个页面重定向到另一个页面,iis,url-rewriting,web-config,iis-7.5,Iis,Url Rewriting,Web Config,Iis 7.5,我想创建一个规则,将查询重定向到一个页面(不存在)到另一个页面 例如: http://www.example.com/en/page.asp?id=2&... 到 我使用这个规则: <rule name="Redirect" stopProcessing="true"> <match url="page\.asp\?(.+)$" /> <action type="Rewrite" url="newpage.asp?{R:1}" />

我想创建一个规则,将查询重定向到一个页面(不存在)到另一个页面

例如:

http://www.example.com/en/page.asp?id=2&...

我使用这个规则:

<rule name="Redirect" stopProcessing="true">
    <match url="page\.asp\?(.+)$" />
    <action type="Rewrite" url="newpage.asp?{R:1}" />
</rule>

但这不起作用。。。我有一个404错误

我犯了什么错

谢谢

  • URL重写的重写操作仅用于重写 在浏览器上显示,但它希望原始页面 存在于服务器上。对于您的情况,您需要重定向操作
  • 正则表达式需要更改,以在最终URL中反映“en-US”
  • 请尝试以下代码:

    <rule name="Redirect" stopProcessing="true">
        <match url="en/page\.asp\?(.+)$" />
        <action type="Redirect" url="en-US/newpage.asp?{R:1}" redirectType="Permanent"/>
    </rule>
    
    
    
    永久重定向有助于使您的网站SEO(搜索引擎优化)防止搜索引擎机器人索引旧URL(因此不会在两个URL之间拆分页面排名)

  • URL重写的重写操作仅用于重写 在浏览器上显示,但它希望原始页面 存在于服务器上。对于您的情况,您需要重定向操作
  • 正则表达式需要更改,以在最终URL中反映“en-US”
  • 请尝试以下代码:

    <rule name="Redirect" stopProcessing="true">
        <match url="en/page\.asp\?(.+)$" />
        <action type="Redirect" url="en-US/newpage.asp?{R:1}" redirectType="Permanent"/>
    </rule>
    
    
    

    永久重定向有助于使您的网站SEO(搜索引擎优化)防止搜索引擎机器人索引旧URL(因此不会在两个URL之间拆分页面排名)。

    好的,重定向更好,我不知道原始页面应该存在。。。但经过反射后,它是有意义的;)。你的例子不起作用。我将更新我的问题,使其更准确。您在新的URL中加入了我们,而您的正则表达式并不关心这个问题。因此,您将获得404。在我的回答中编辑了代码以反映这一点。你能从404页面提取URL以查看最终的URL是否是它所需要的吗?此URL将出现在页面响应中,或者只需查看源代码即可获取URL。另外(我知道这听起来很基本)检查你是否能够正确浏览到“…”而没有错误。好的,重定向更好,我不知道原始页面应该存在。。。但经过反射后,它是有意义的;)。你的例子不起作用。我将更新我的问题,使其更准确。您在新的URL中加入了我们,而您的正则表达式并不关心这个问题。因此,您将获得404。在我的回答中编辑了代码以反映这一点。你能从404页面提取URL以查看最终的URL是否是它所需要的吗?此URL将出现在页面响应中,或者只需查看源代码即可获取URL。另外(我知道这听起来很基本)检查您是否能够正确浏览到“…”而没有错误。