Как удалить строку запроса из URL с помощью правила htaccess? - PullRequest
0 голосов
/ 18 января 2019

На каждой странице моего сайта в конце URL может быть ?css=(mobile|desktop) запрос.Мне нужно удалить этот запрос следующим образом:

  • example.com/?css=mobile до example.com

  • example.com/dir1?css=mobile до example.com/dir1

  • example.com/dir1/.../dir10?css=mobile до example.com/dir1/.../dir10

Я пытался сделать это так, но не могу сделать правильное правило.

RewriteCond %{QUERY_STRING} css=(mobile|desktop)
RewriteRule ^(.*) problemhere [R=301,L]

1 Ответ

0 голосов
/ 18 января 2019

Я бы сказал, что проблема в том, что вам нужно сохранить другие потенциальные параметры получения ...

Возможно, что-то подобное может сработать:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)&?css=(mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]

Этот набор правил должен работать аналогичным образом в конфигурации хоста http-серверов, а также в файлах динамической конфигурации (файлы стиля ".htaccess"), если вам нужно использовать их (которые вы должны попытаться предотвратить ...).

Вот модифицированная версия с фиксированным условием, указанным @MrWhite в комментарии:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*?)&?css=(?:mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]
...