Получение внутренней ошибки сервера для RewriteRule -.htaccesss

0

Я пытаюсь написать RewriteRule для следующего сценария

Когда я нажимаю URL-адрес: localhost/example

ему нужно загрузить файл example.php, который находится в подпапке (страницах)

Структура папок:

     - pages
- example.php
- styles
- scripts
- index.php

Мой файл.htaccess выглядит следующим образом

RewriteEngine on
RewriteRule ^(.*)$ pages/$1.php

но я получаю

500 - внутренняя ошибка сервера

Любой, пожалуйста, помогите мне в этом сценарии.

Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Ваши правила перезаписи, вероятно, связаны друг с другом. Добавьте условие, чтобы это не происходило:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/pages/$1.php -f
RewriteRule ^(.*)$ /pages/$1.php [L]

Поскольку механизм перезаписи работает до тех пор, пока URI не перестанет меняться, (.*) Соответствует всем, включая /pages/whatever. Таким образом, URI продолжает получать /pages/ прилагается к передней части URI.

  • 0
    Привет спасибо за ваш ответ Работает нормально на сервере. Но когда я пытаюсь в localhost его поговорка не найдена.
  • 0
    на локальном хосте у вас есть файл htaccess в корне документа? Если нет, то вам нужно изменить правила, чтобы учесть другую базу
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню