【问题标题】:Mod rewrite string query from old website page to newMod将旧网站页面的字符串查询重写为新页面
【发布时间】:2014-06-24 19:39:00
【问题描述】:

我已经为此苦苦挣扎了几个星期,但无法做到! 我有几个旧页面(数千个)有如下字符串(我们移动了购物车)

www.example.com/cgi-bin/commerce.cgi?preadd=action&key=86895 AND

www.example.com/cgi-bin/commerce.cgi?preadd=action&search=action&searchstart=20&keywords=blahblah

我想将这些页面重定向到我的新网站上的搜索页面。我使用了以下方法,但它不起作用

重写条件 %{QUERY_STRING} ^$ 重写规则 ^cgi-bin/commerce.cgi\?(.*)$ http://www.example.com/newpage? [R=301,L]

请帮帮我,这样我就可以回去留头发了!

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite


    【解决方案1】:

    有两个问题:

    1. 您的条件RewriteCond %{QUERY_STRING} ^$ 表示查询字符串为空。您实际上是在尝试重定向查询字符串是否为空。
    2. 您的规则在 url 中查找 ?,但查询字符串不是可以在规则中匹配的文本的一部分。

    使用这个较短的规则,没有 RewriteCond(在 Apache 2.4 上测试):

    RewriteRule ^/?cgi-bin/commerce\.cgi http://www.example.com/newpage? [R=301,L]
    

    让我知道这是否适合您。 :)

    【讨论】:

    • 很好解释的解决方案。
    【解决方案2】:

    尝试将以下内容放入 htaccess 文件中

    # This allows you to redirect your entire website to any other domain
    Redirect 301 / http://newwebsiteurl.com/
    

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 2015-01-25
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多