htaccess: языковая переменная php на индексной странице

Я пытаюсь очистить URL-адреса от расширений и получить языковые переменные php:

test.com/en/ => test.com/?lang=en

test.com/ro/page/ => test.com/page.php?lang=ro

Вот мой .htaccess:

AddDefaultCharset utf-8

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f  [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([^/]+)/([^.]+)\.php  /$2.php?lang=$1 [L,NC,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

При этом он преобразует test.com/ro/page => test.com/page.php?lang=ro и test.com/ro/index => test.com/index.php?lang=ro

Я не могу заставить его преобразовать индексную страницу test.com/en/ => test.com/?lang=en

Не могли бы вы, ребята, помочь мне достичь этого?


person vlad    schedule 29.06.2015    source источник
comment
Не проще ли будет направить все на index.php и оттуда включить нужные файлы?   -  person jeroen    schedule 29.06.2015
comment
На данном этапе, когда сайт готов и его структура уже настроена, исправить файл htaccess, пожалуй, будет самым простым вариантом.   -  person vlad    schedule 29.06.2015
comment
Просто предложение :-)   -  person jeroen    schedule 29.06.2015


Ответы (1)


Прямо по этому правилу:

RewriteRule ^([^/]+)/([^.]+)\.php  /$2.php?lang=$1 [L,NC,QSA]

попробуйте добавить это правило:

RewriteRule ^([^/]{2})/?$ /?lang=$1 [L,NC,QSA]
person Jon Lin    schedule 29.06.2015