【问题标题】:htaccess remove query string only for roothtaccess 仅针对 root 删除查询字符串
【发布时间】:2015-10-21 09:13:33
【问题描述】:

我想删除一个查询字符串,但仅适用于以下 6 种情况,绝不适用于任何子文件夹/其他 url。

http://www.example.com/?___store=de&___from_store=de
http://www.example.com/?___store=de&___from_store=en
http://www.example.com/en/?___store=de&___from_store=en
http://www.example.com/en/?___store=de&___from_store=en
http://www.example.com/en/?___from_store=en
https//www.example.com/en/?___from_store=de

这是我已经得到的。它正在工作,但是从所有 url 中删除了我不想要的查询字符串。

RewriteCond %{QUERY_STRING} /?___store=de&___from_store=de
RewriteRule ^(.*)$ /$1? [L,R=301]

RewriteCond %{QUERY_STRING} /?___from_store=de
RewriteRule ^(.*)$ /$1? [L,R=301]

RewriteCond %{QUERY_STRING} /?___store=de&___from_store=en
RewriteRule ^(.*)$ /$1? [L,R=301]

RewriteCond %{QUERY_STRING} /?___from_store=en
RewriteRule ^(.*)$ /$1? [L,R=301]

我需要这个针对 Magento 商店的特定重写规则。默认商店的商店视图代码被此扩展删除:Knectar/Magento-Store-Codes,另见:Magento remove store code for default store view。 结果,___store 查询参数被添加到 url,但仅在 root 上。

我上面的解决方案不起作用,因为当涉及到产品/类别时,语言切换不再正常工作(并且无需删除字符串,因为它已被 Magento 本身剥离)。

【问题讨论】:

    标签: .htaccess magento mod-rewrite query-string url-redirection


    【解决方案1】:

    尝试以下方法:

    RewriteCond %{QUERY_STRING} ^___store=de&___from_store=(en|de)$ [NC]
    RewriteRule ^(en/?)?$ $1? [R=301,L,NC]
    
    RewriteCond %{QUERY_STRING} ^___from_store=(en|de)$ [NC]
    RewriteRule ^en/?$ $0? [R=301,L,NC]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多