Используя .htaccess
файл, я хотел бы перенаправить www.example.com/fr/
на www.example.com/
другие французские страницы, имеющие /fr/
корень (например www.example.com/fr/page-name
, )
Я пробовал использовать Redirect 301 /fr/ https://example.com/
, но это перенаправляет все французские страницы на английские версии, что мне не нужно.
Есть ли способ обойти это?
решение1
Redirect 301 /fr/ https://example.com/
Директива mod_alias Redirect
является префикс-сопоставляющей, поэтому она перенаправляет все, что просто начинается, /fr/
и копирует все после совпадения в конец целевого URL. Она отлично подходит для перенаправления целых ветвей URL (или целых сайтов), но не для определенных URL.
Чтобы перенаправить определенный URL-адрес, вам необходимо использовать RedirectMatch
, который сопоставляется с регулярным выражением, вместо простого сопоставления префиксов.
Например:
RedirectMatch 301 ^/fr/$ https://example.com/
Обратите внимание, что если у вас уже есть директивы mod_rewrite (т. е. RewriteRule
), то вам может потребоваться (или может быть предпочтительнее) использовать здесь mod_rewrite.
Ссылка: