У меня возникают проблемы с настройкой htaccess, чтобы разрешить использование нескольких языков с использованием метода подкаталогов, например:
http://www.domain.com/en/
http://www.domain.com/sw/
http://www.domain.com/ie/
Также, чтобы усложнить ситуацию, проект в настоящее время не работает, его на dev-сервере. Например, Я в настоящее время обращаюсь к проекту по адресу:
http://dev.domain.com/devname/projectname/
И я хочу, чтобы приведенное выше автоматически 301 перенаправлялось на:
http://dev.domain.com/devname/projectname/en/
Вот мой htaccess:
Options +FollowSymLinks -MultiViews
RewriteEngine on
# ----------------------------------------------------------------------
# MULTI LANGUAGE SUB DIRECTORY
# ----------------------------------------------------------------------
RewriteCond %{REQUEST_URI} !^/(en|sw)/
RewriteRule ^(.*)$ en/$1 [R=301,L]
# ----------------------------------------------------------------------
# Rewrite rules
# ----------------------------------------------------------------------
## CASE STUDIES ##
RewriteRule ^casestudies/([^/\.]+).html$ index.php?controller=contents&method=viewCasestudy&link=$1 [L,QSA]
## PRODUCTS ##
RewriteRule ^products/([^/\.]+).html$ index.php?controller=contents&method=viewProduct&link=$1 [L,QSA]
RewriteRule ^([a-z{2}]+)(/)?$ index.php?controller=contents&method=viewHome&lang=$1 [L,QSA] # Default load
RewriteRule ^(/)?$ index.php?controller=contents&method=viewHome [L,QSA] # Default load
Приведенное выше будет перенаправлено на:
http://dev.domain.com/home/webserver_dir/devname/projectname/en/
.., и если я использую RewriteBase, он, похоже, просто...
http://dev.domain.com/en/
Итак, мой вопрос:. Как заставить URL-адреса языка корректно работать с каталогом на моем dev-сервере, а затем идеально будет работать, когда он будет работать без каких-либо особых правил среды.
Бонусный вопрос: Нужно ли добавить бит ([az {2}] +) перед всеми моими последующими правилами перезаписи или я могу уловить все, что повлияет на все дальнейшие правила
РЕДАКТИРОВАТЬ -----------------------------
Я сократил его до следующего, как было предложено...
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /devname/projectname/
RewriteCond %{REQUEST_URI} !^/(en|sw)(/|$) [NC]
RewriteRule ^(.*)$ en/$1 [R=301,L]
RewriteRule ^([a-z]{2})/?$ index.php?controller=contents&method=viewHome&lang=$1 [NC,L,QSA] # Default load
... но теперь его перенаправление на http://dev.domain.com/devname/projectname/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/
, любые идеи?