Почему обращение по ЧПУ выдает 404 ошибку?

Решил разобраться в работе ЧПУ и сделать свой простой пример.

Есть страница /projects/index.php - выводит список проектов
Нужно, чтобы по адресу /projects/nazvanie-proekta/ - выводилось описание проекта.

/projects/ - открывается
/projects/nazvanie-proekta/ - выдает 404 ошибку

В файле .htaccess прописал следующим образом:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^projects/([a-zA-Z0-9\-]*)/$ /projects/index.php?pr_url=$1
  • Вопрос задан
  • 2680 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Если .htaccess лежит в корне сайта то
RewriteRule ^projects/([a-zA-Z0-9\-]+)/?$ /projects/index.php?pr_url=$1

если в projects то
RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?pr_url=$1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
не хватает символа / после символа ^
Символ ^ обозначает начало строки, поэтому ^projects не подпадает под строку /projects
И лучше изменить звёздочку на плюсик, иначе в данном варианте под шаблон будут попадать строки /projects//.
Итоговое правило:
RewriteRule ^/projects/([a-zA-Z0-9\-]+)/$ /projects/index.php?pr_url=$1
Ответ написан
Ваш ответ на вопрос

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

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