Я пытаюсь использовать .htaccess
для перезаписи запросов для PHP файлов, которые явно не включают расширение .php
(например, example.com/foo
следует переписать на example.com/foo.php
), но без применение этого правила к любым папкам (или подпапкам) документа root.
Мой http.conf
файл содержит следующее:
DocumentRoot "/webfiles"
<Directory "/webfiles">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Alias "/exams" "/training/exams"
<Directory "/training/exams">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
DirectoryIndex index.php
В папке /training/exams
есть файл .htaccess
, содержащий следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Цель
- обслуживать запросы типа
example.com/exams
с файлом /training/exams/index.php
, - обслуживать запросы типа
example.com/exams/first
с файлом /training/exams/first.php
, - пока еще запросы типа
example.com/myhome.html
обслуживаются с /webfiles/myhome.html
.
Примеры 1. и 3. работают нормально, но для 2. Я получаю ошибку 404.