У меня возникли очень неприятные проблемы с тем, чтобы заставить .htaccess работать на моем новом сервере. Я не очень опытен в управлении сервером, но последние три дня я потратил на изучение документации и всех ресурсов, которые мне попадались.
Я попытался попробовать очень простое приложение .htaccess, но оно не дает ожидаемых результатов. Я установил тестовый каталог. Непосредственно в этом каталоге находится файл .htaccess со следующей командой:
отрицать от всех
Если я не ошибаюсь, это должно запретить доступ к / test, но это не так. Он просто сидит, позволяя любому просматривать содержимое. Я сделал читаемую копию .htaccess, доступную в том же каталоге для всех, кто хочет видеть именно что происходит в моем .htaccess.
Что может быть не так с моим сервером / конфигурацией? На сервере работает CentOS.
Ответ на Дом
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
Как и было предложено, я изменил это на AllowOverride All
, а затем перезапустил мой сервер:
service httpd restart
Но получил следующее сообщение:
Синтаксическая ошибка в строке 347 файла /etc/httpd/conf/httpd.conf:
AllowOverride здесь не разрешен [FAILED]
Строка 347 - последняя строка ниже:
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that
# ~useridllowOverride controls what directives may be placed in
# .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
У вас есть AllowOverride All
в вашей конфигурации Virtualhost? если у тебя есть AllowOverride None
, файл .htaccess не читается, поэтому он не будет использоваться. И правильно,
отрицать от всех
в одиночку запретил подключение к папке. И не забудьте перезагрузить apache