Мне было предложено создать существующий веб-сайт с несколькими языками.Настройка условной переадресации в htaccess
В рамках подготовки к этому я должен был переместить все существующие страницы из/пути/страницы в/EN/пути/странице
Чтобы сохранить существующие входящие ссылки теперь нужно создать Htaccess перенаправление для отправки любого запросы от их оригинальных URL-адресов к новым URL-адресам/en/path/page, но у меня возникают проблемы с тем, чтобы это работало.
Это то, что у меня есть;
RewriteCond %{REQUEST_URI} !^/en$
RewriteRule ^(.*)$ /en/$1 [R=301,L]
Что я думаю предназначен для проверки запрошенный URI, и если она не начинается с/ан, то перед именем/ен на запрошенный URI ... но я, очевидно, ошибочно, так как это Безразлично» т работы.
Любая помощь приветствуется. Спасибо.
ОБНОВЛЕНИЕ. Поскольку это сайт ExpressionEngine и есть дополнительное правило, чтобы удалить index.php часть URL здесь оба правила
# Rewrite for new language based urls
# This is to try and get all current pages going to /en/(old url) with a 301 redirect
RewriteCond %{REQUEST_URI} !^/en(/.*)?$
RewriteRule ^(.*)$ /en/$1 [R=301,L]
# Removes index.php
RewriteCond $1 !\.(gif|jpe?g|png|ico)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
Я также попытался это с языком переписыванием после index.php один. Я все еще зацикливаюсь.
Спасибо, я пробовал это, но он все еще не совсем работает. Я думаю, что здесь есть что-то другое. Это сайт, управляемый ExpressionEngine, который также использует htaccess для удаления части index.php URL. Я обновлю свой вопрос, чтобы показать перезаписывающее устройство, которое это делает. – foamcow
Последнее правило вызывает другое (внутреннее) перенаправление, а mod_rewrite снова проверит правила для этого нового URI, где первое правило будет совпадать. Я уточню свой ответ. – ndm
Еще раз спасибо. Я дам это как можно скорее. – foamcow