【问题标题】:Url rewriting: Redirect one page to another网址重写:将一页重定向到另一页
【发布时间】:2012-01-03 23:04:09
【问题描述】:

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

例子:

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

http://www.example.com/en-US/newpage.asp?id=2&...

我使用这条规则:

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

但这不起作用...我收到 404 错误...

我的错误是什么?

谢谢

【问题讨论】:

    标签: iis url-rewriting web-config iis-7.5


    【解决方案1】:
    1. URL Rewrite 的 Rewrite 操作仅用于重写页面 URL 显示在浏览器上,但它希望原始页面 存在于服务器上。对于您的情况,您需要一个重定向操作。
    2. 需要更改正则表达式以在最终到达网址中反映“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(因此不会在 2 个 URL 之间拆分页面排名)。

    【讨论】:

    • 好的,重定向更好,我不知道原始页面应该存在......但经过反射后才有意义;)。你的例子不起作用。我会更新我的问题以更准确
    • 啊,你的新 URL 中有 en-US,你的正则表达式没有处理。因此,您得到了 404。编辑了我的答案中的代码以反映这一点。
    • 您能否从 404 页面中提取 URL 以查看最终 URL 是否是所需的?此 URL 将在页面响应中,或者只是执行查看源来获取 URL。另外(我知道这听起来很基本)检查您是否能够正确浏览到“example.com/en-US/newpage.asp?id=2&...”而没有错误。
    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 2021-10-28
    • 2016-03-31
    • 1970-01-01
    • 2021-06-09
    • 2020-09-29
    • 2021-05-10
    相关资源
    最近更新 更多