Я пытаюсь перенаправить языковые URL, заканчивающиеся на /?lang=da
, /?lang=de
и /?lang=nl
на тот же URL, но заканчивающийся на /?lang=en
.
Так
www.example.com/accommodation/hotel-room-1/?lang=da
должен привести к
www.example.com/accommodation/hotel-room-1/?lang=en
и т.п.
Есть ли способ использовать для этого подстановочные знаки?
Если этих языковых версий больше не существует, вы можете реализовать перенаправление с помощью mod_rewrite в своем корне. .htaccess
файл.
Например, в верхней части вашего .htaccess
файл попробуйте следующее:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^lang=(da|de|nl)$
RewriteRule (.*) /$1?lang=en [R=301,L]
Это 301 редирект /<anything>?lang=da
(или de
или nl
) к тому же URL-пути, но с lang=en
. Как и в вашем примере, /accommodation/hotel-room-1/?lang=da
перенаправляет на /accommodation/hotel-room-1/?lang=en
.
В $1
обратная ссылка захватывает URL-путь из запрошенного URL.
Обратите внимание, что предпочтительнее сначала протестировать с 302 (временными) перенаправлениями, чтобы избежать кеширования любых ошибочных перенаправлений, и менять на 301 только тогда, когда вы уверены, что он работает должным образом.