htaccess: Исключить корневую директорию из правила

player

Новичок
htaccess: Исключить корневую директорию из правила

Добрый день!

Помогите плиз, сделал правило

RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule ^([A-Za-z0-9-_/]*)$ /index.php?action=showgym&gid=$1 [L]

Простое перенаправление. Но получается что domain.test/ тоже перенаправляется на /index.php?action=showgym&gid=

Как исключить корень сайта из правила?

Заранее спасибо
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Добавь еще один RewriteCond
 

player

Новичок
я пробовал, но чтото не дотумкал

RewriteCond %{REQUEST_FILENAME} !^$ [OR]
RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule ^([A-Za-z0-9-_/]*)$ /index.php?action=showgym&gid=$1 [L]

Так?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RewriteCond %{REQUEST_FILENAME} !^$ [OR]
RewriteCond %{REQUEST_FILENAME} !\.php$
Ты можешь правило реврайта, что тебе нужно, записать обычными словами?
 

player

Новичок
Ты можешь правило реврайта, что тебе нужно, записать обычными словами?
"если путь не пуст (то есть между началом и концом нету ничего)
И если файл не заканчивается на .php"

на счет первого я и хотел спросить - как выразить !empty() чтобы различить, нахожусь ли я в корневой папке или нет.
вместо REQUEST_FILENAME пробовал и REQUEST_URI - без результата.

Плиз подскажите
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Во первых в REQUEST_FILENAME содержится совсем не то, что тебе нужно.
"Прицепи" переменную %{REQUEST_FILENAME} к твоему правилу
RewriteRule ^([A-Za-z0-9-_/]*)$ /phpinfo.php?here=%{REQUEST_FILENAME} [L]
И ты увидишь, что там совсем не то, что ты ожидал

Твои действия:
Цепляешь к реврайту в подстановку
%{REQUEST_URI} и смотришь, что туда попадает при запросе корневой директории.
то, что увидишь, добавляешь в RewriteCond.


И если файл не заканчивается на .php"
Вообще-то ты написал не и а __ИЛИ__
 

player

Новичок
Вообще-то ты написал не и а __ИЛИ__
Я тоже об этом думал.. но не нашел [AND] - или вообще ничего не надо?

Твои действия:
Цепляешь к реврайту в подстановку
%{REQUEST_URI} и смотришь, что туда попадает
Спасибо! на счет слэша я уже пробовал.. но видимо проверял в тот момент не uri а файлнейм
Сейчас написал


RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule ^([A-Za-z0-9-_/]*)$ /index.php?action=showgym&gid=$1 [L]

Работает!
 
Сверху