我不了解.htaccess
重定向规则。如果用户输入http://example.com?abc=123
或https://example.com?who=123
或https://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被浏览器持久缓存,因此可能会使测试出现问题。)