Я пытаюсь написать RewriteRule для следующего сценария
Когда я нажимаю URL-адрес: localhost/example
ему нужно загрузить файл example.php, который находится в подпапке (страницах)
Структура папок:
- pages
- example.php
- styles
- scripts
- index.php
Мой файл.htaccess выглядит следующим образом
RewriteEngine on
RewriteRule ^(.*)$ pages/$1.php
но я получаю
500 - внутренняя ошибка сервера
Любой, пожалуйста, помогите мне в этом сценарии.
Ваши правила перезаписи, вероятно, связаны друг с другом. Добавьте условие, чтобы это не происходило:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/pages/$1.php -f
RewriteRule ^(.*)$ /pages/$1.php [L]
Поскольку механизм перезаписи работает до тех пор, пока URI не перестанет меняться, (.*)
Соответствует всем, включая /pages/whatever
. Таким образом, URI продолжает получать /pages/
прилагается к передней части URI.