301重定向,仅在主页上删除查询字符串



我不了解.htaccess重定向规则。如果用户输入http://example.com?abc=123https://example.com?who=123https://example.com?xyz=123,则它应该重定向到https://example.com,并使用301重定向。

如果用户输入任何查询字符串,那么它应该重定向到主页,但我需要实现这只在主页上,而不是内部,plp或pdp页面。

我的plp URL就像https://example.com/sale.html,用户可以通过分层导航过滤器在该页面上添加查询字符串。我们对plp页面很满意。

请帮助我,并提供我.htaccess规则或任何其他方式来完成这一点。我正在使用Magento2和使用Fastly,如果有任何可能的Magento2通过Fastly,那么它将很容易实现。

要删除对根URL的任何请求的查询字符串,只需在.htaccess文件的顶部添加以下内容:

# Remove query string on homepage only
RewriteCond %{QUERY_STRING} .
RewriteRule ^$ / [QSD,R=301,L]

你不需要重复RewriteEngine On指令,如果这已经发生在文件的后面(我希望它会发生)。

RewriteRule模式^$只匹配根。https://example.com/)。前面的条件(RewriteCond指令)检查是否存在查询字符串(即。至少1个字符,用正则表达式.表示)。

如果匹配,则触发301(永久)重定向回根(/),但删除查询字符串。QSD标志(查询字符串丢弃)从重定向响应中删除原始查询字符串。

注意:先测试302(临时)重定向(即。在上面的RewriteRule指令中将R=301更改为R=302)以避免潜在的缓存问题。(301被浏览器持久缓存,因此可能会使测试出现问题。)

最新更新