Htaccess перенаправляет только один URL со строкой запроса

Мне нужно перенаправить только этот URL https://www.mywebsite.com/?lang=en на https://www.mywebsite.com/en/

Я пытаюсь с этим без успеха

RewriteCond %{REQUEST_URI} https://www.mywebsite.com/  
RewriteCond %{QUERY_STRING} lang=en
RewriteRule ^(.*)$ https://www.mywebsite.com/en/ [R=301,L]

1 ответ

Решение

Вам нужно поставить пустой знак вопроса ? в конце пункта назначения вашего правила отбросить старую строку запроса из нового URL.

Перенаправить /?lang=en в /en/ Вы можете использовать следующее правило:

RewriteEngine on
RewriteCond %{QUERY_STRING} lang=en
RewriteRule ^$ https://www.mywebsite.com/en/? [R=301,L]

В противном случае ваш новый URL будет выглядеть примерно так /en/?lang=en,

Очистите кеш браузера перед тестированием.

Другие вопросы по тегам