URL-адреса, как показано ниже (есть 2 веб-сайта, один с www, а другой без it)
https://example1.com/any-path-here/?_gl=1*um0ntk*_ga*YW1wLUVyYS1QbHgwcFp1SEJBYVlGSlNYdWNQUWIxNGVxY2VhakRDNDUtYmJUZWZPV1M2WEdWN2s2dXVRNzNZWGNTdkk
https://www.example2.com/hello-how-are-you-today/?_gl=1*1lcwex2*_ga*YW1wLXBtWXdrdWNEcTRjTVcwWjMzTzJwNEdJeU5vTmo5UVF0RmFhTEdpbkdMdjgyLXRNQXJaM21oRGpUX2ppSnB3dGs
должен перенаправлять на
https://example1.com/any-path-here/
https://www.example2.com/hello-how-are-you-today/
Только _gl = кажется постоянным.
Я пробовал:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} _gl=
RewriteRule ^ %{REQUEST_URI}? [L,R]
</IfModule>
И
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^_gl=*
RewriteRule ^ %{REQUEST_URI}? [L,R]
</IfModule>
И другие правила. Но, похоже, ничего не работает.
Я надеюсь, что решение не испортит перенаправление голого домена и перенаправление https.
Хотя ни одно из опубликованных вами правил не является строго правильным, они оба должны выполнять необходимое перенаправление. Если у вас есть другие директивы в вашем файле .htaccess
, то наиболее вероятная причина заключается в том, что они расположены в неправильном порядке, и у вас есть конфликт.
Эти перенаправления должны быть в верхней части .htaccess
файл, перед любыми существующими директивами mod_rewrite . (Хотя вы можете комбинировать его с перенаправлением HTTPS / голого домена?)
Вам не нужна оболочка
и не нужна RewriteEngine On
], если она уже существует в вашем файле .htaccess
.
Чтобы удалить строку запроса, когда запрос содержит строку запроса, которая начинается с _gl =
, тогда CondPattern следует читать ^ _ gl =
. Завершающий *
повторяет предыдущий =
, а _gl =
соответствует этой строке в любом месте строки запроса, а не только в начале.
Например:
RewriteCond %{QUERY_STRING} ^_gl=
RewriteRule ^ %{REQUEST_URI}? [R,L]
Если вы используете Apache 2.4, вы можете использовать флаг QSD
(Отмена строки запроса) вместо добавления ?
к строке подстановки . т.е. RewriteRule ^% {REQUEST_URI} [QSD, R, L]