代码之家  ›  专栏  ›  技术社区  ›  Ayan Biswas

如何使用.htaccess将包含问号和特定字符串的URL重定向到根域

  •  0
  • Ayan Biswas  · 技术社区  · 9 月前

    我网站的旧网址结构是这样的

    https://www.naturablooms.com/wholesale-pricelist?color_id&flower_type_id&name_search_start&page=1&product_type=Dried&psearch&ship_service
    

    我们网站当前的url结构因SEO而改变。现在我们必须将问号后有color_id的所有此类url重定向到根域。这就像

    https://www.naturablooms.com/wholesale-pricelist?color_id&flower_type_id&name_search_start&;第1页;product_type=干燥和;psearch&;船舶服务
    

    https://www.naturablooms.com/
    

    我们在.htaccess中尝试了以下操作

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

    但它将重定向到 https://www.naturablooms.com/wholesale-pricelist 不是根域 https://www.naturablooms.com/

    我们需要将其重定向到 https://www.naturablooms.com/

    如果有人能帮助我解决这个问题,我将不胜感激。

    1 回复  |  直到 9 月前
        1
  •  0
  •   arkascha    9 月前

    这可能就是你要找的:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^color_id&
    RewriteRule ^ / [R=301,L,QSD]
    

    或者,也许从你的问题中,这并不清楚:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^color_id&
    RewriteRule ^/?wholesale-pricelist/?$ / [R=301,L,QSD]
    

    您之前的规则明确复制了请求的路径,因为您使用了占位符 $1 其包含匹配图案捕获的任何内容。你既不需要捕捉任何东西,也不需要复制任何东西。