Inkvee

ответов0 / помог0

Проблема с httpd.conf

1680545942
Здравствуйте, есть корневая папка сайта с .htaccess - http://localhost/work_test Содержимое файла .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?q=$1 [L,QSA]
Я хочу сделать так, чтобы при переходе по адресу http://localhost/work_test/login в q записывалось значение 'login'. Но вот в чем проблема, по умолчанию у меня в httpd.conf была такая строка для директории:

<Directory />
    AllowOverride All
    Require all granted
</Directory>
И по идее она должна применятся для всех директорий на серваке, насколько я понял. Но с этой настройкой у меня как будто не работал .htaccess и при переходе по http://localhost/work_test/login выдавалась ошибка 404, что страницы не существует. После этого я уже конкретно написал полный путь до файла .htaccess:

<Directory "D:/kirill/Server/data/htdocs/work_test">
    AllowOverride All
    Require all granted
</Directory>
И после этого всё заработало, но вопрос в том, почему не работает .htaccess при указании директории '<Directory />'? А если к примеру у меня будет несколько папок с .htaccess, то придётся указывать ко всем им полный путь? Поэтому и хочу разобраться в чем причина.
BANO
ответов14 / помог6
1680546101
Inkvee, «А если к примеру у меня будет несколько папок с .htaccess, то придётся указывать ко всем им полный путь?» Да. Это делается в конфигурации конкретного виртуального хоста. А в блоке Directory / лучше прописать полные запреты, например:

<Directory />
    AllowOverride none
    Require all denied
</Directory>
«почему не работает .htaccess при указании директории '<Directory />'?» Возможно, версия для Windows не понимает обозначение /. Или просто index.php находится не там, где ожидается. Настоящий-то корень сайта - не work_test «RewriteRule ^(.+)$ index.php?q=$1 [L,QSA]» Кстати, перенос пути в параметр строки запроса - устаревший подход. Лучше работать во фронт-контроллере с неизменным (исходным) адресом запроса.
Inkveeвлепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль