【问题标题】:Redirect permanent when URL source contains a "?"当 URL 源包含“?”时永久重定向
【发布时间】:2013-12-19 14:54:23
【问题描述】:

我正在寻求有关重定向永久物的帮助。

我想做一个像这样的重定向:

http://www.mydomain.com/site/index.php?code=_frhttp://www.mydomain.com/home

当我对任何 URL 尝试类似的操作时:

RedirectPermanent /site/index.php URLDEST

但如果我想这样做,它就行不通了......

RedirectPermanent /site/index.php?code=_fr URLDEST

我也尝试过类似的方法:

RewriteRule ^/site/index.php?code=_fr$ URLDEST [R=301]

但它也不起作用。

我怎样才能做到这一点?

【问题讨论】:

    标签: apache mod-rewrite redirect rewrite permanent


    【解决方案1】:

    你需要一个条件来检查rewrite中查询字符串的值:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^code=_fr$
        RewriteRule ^/site/index.php$ /home [R]
    

    当我测试它时,这有效,而不是 /home,我将重定向到谷歌,当我点击 /site/index.php?code=_fr 时,它就去了。其他任何事情和规则都不匹配。您确定要重定向到的页面确实存在吗?您将 URLDEST 设置为什么?如果您收到 404,则您重定向到的页面丢失或某处存在其他配置错误。我还建议使用 Firebug 或 Charles 查看请求的响应标头。如果您看到 30x,则该规则是匹配的并且有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-05
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多