Help - Работает только последнее правило

Статус
В этой теме нельзя размещать новые ответы.

megadude

Гуру форума
Регистрация
6 Сен 2006
Сообщения
184
Реакции
68
Имеется самый простой набор правил:
Код:
Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f

RewriteRule ^en/(.*)$ $1.php?lang=en [NC, L]
RewriteRule ^fr/(.*)$ $1.php?lang=fr [NC, L]
Но работает только последнее: localhost/sitename/fr/index
При localhost/sitename/en/index - ERROR 404

Если 2 последние строки поменять местами - работать будет localhost/sitename/en/index, а первое - нет

Кто-нибудь?
 
Попробуй так
Код:
Options +FollowSymlinks
RewriteEngine On

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^en/(.*)$ $1.php?lang=en [NC, L]
 
Код:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f

вот это по моему вообще лишнее
 
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^en/(.*)$        /$1.php?lang=en [NC]
RewriteRule ^fr/(.*)$        /$1.php?lang=fr [NC]
вроде должно работать так...
проверять не стал, тк писал сразу тут
 
может каталог en существует и правило пропускается, ещё универсальный вариант для всех языков с двумя символами
Код:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.{2})/(.*)/?$ $2.php?lang=$1 [QSA,L]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху