@alex_iz_zoosada

Как правильно настроить .htaccess?

Сейчас мой файл htaccess выглядит так. Суть в том чтобы при открытии ссылки вида site.ru/cases/title-of-case/ выдавался контент со страницы site.ru/case.php?id=title-of-case

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^cases/(.*)$ case.php?id=$1 [QSA,L]

Вопрос в том, как сделать так, чтобы по ссылке site.ru/cases/ (без идентификатора) открывался файл index.php который лежит в папке /cases/

Сейчас при переходе на site.ru/cases/ выдает ошибку так как он пытается найти id но id нет
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
@alexalexes
Добавьте выше правило:
RewriteRule ^cases/$ /cases/index.php [QSA,L]
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега htaccess
Господа еще раз, я уже не знаю в какой
RewriteRule- вообще не знает про GET, ну не является он по его мнению частью урла от слова совсем.
Осознав эту мысль вы с легкостью поймете что утверждение
RewriteRule ^cases/$ 
RewriteRule ^cases/(.*)$
RewriteRule ^cases/?id=dsfasdfasdfadsfsdaf$

ОДИНАКОВЫ, если мы говорим про гет параметры.

А вот если бы вы написали
RewriteCond %{REQUEST_URI} ^case.php$ 
RewriteCond %{QUERY_STRING} (^|&)id\=title-of-case($|&)
RewriteRule   ........

ТО смогли бы поставить условие по этому GET параметру.
Но не удалить его, поскольку он опять же не попадает в RewriteRule

Просто же удалить GET можно очень не очевидным способом.
RewriteRule было стало? [QSA,L]
Знак вопроса не опечатка, именно он в конце удалит гет папраметры с урла.
л -логика ;) логика
Логика mod_rewrite требует особого вида мышления ;)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы