【发布时间】:2020-01-08 11:29:03
【问题描述】:
大家好,我正在尝试使用 Htaccess 将所有页面重定向到 https://,同时保留不带 fbclid 的查询字符串(如果存在)。
IE。
- https://www.example.com/?sdfuh
- http://www.example.com/?sdfuh
- www.example.com/?sdfuh
- https://www.example.com/?sdfuh&fbclid=azduh
- http://www.example.com/?sdfuh&fbclid=azduh
- www.example.com/?sdfuh&fbclid=azduh
- example.com/?sdfuh&fbclid=azduh
他们应该返回https://example.com/?sdfuh
好的,经过一些帮助,我已经解决了这个问题
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ [AND]
RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)fbclid=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteRule ^(.*)/?(.*)$ https://example.com/?%1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ [AND]
RewriteCond %{QUERY_STRING} ^(.*)
RewriteRule ^(.*)/?(.*)$ https://example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(.*)/?(.*)$ https://example.com/ [R=301,L]
RewriteCond ^(www.)?example.com$
RewriteRule ^(.*)/?(.*)$ https://example.com/ [R=301,L]
这适用于:
- https://www.example.com/?sdfuh
- http://www.example.com/?sdfuh
- www.example.com/?sdfuh
- https://www.example.com/?sdfuh&fbclid=azduh
- http://www.example.com/?sdfuh&fbclid=azduh
没有
- www.example.com/?sdfuh&fbclid=azduh
- example.com/?sdfuh&fbclid=azduh
我需要弄清楚如何让它更短并利用所有可能性
【问题讨论】:
-
不,我总是想获得 https://,但该网站的某些链接具有用于推荐的查询字符串,例如 example.com/?abc,但因为 facebook 也喜欢查询字符串,如果它们来自 facebook 那篇文章删除那里的标签并将其放回 example.com/?abc 我试图将它结合起来,所以我总是得到 https 和查询字符串 ?abc 但如果 fbclid= 在那里删除它。
标签: html .htaccess redirect mod-rewrite url-rewriting