Почему я не могу отключить .htaccess в Apache?
-
03-07-2019 - |
Вопрос
Это противоположная проблема большинству о которых я читал.Я использую Ubuntu 8.04 на экземпляре Amazon с Apache 2.2.8 и не могу понять, почему установка AllowOverride на None для root не мешает включению моего файла .htaccess.
У меня есть подкаталог с hello.py и файлом .htaccess.Когда я просматриваю файл, он отлично работает с modpython, обслуживающим файл.Если я помещу какой-то мусор в .htaccess, я получу ошибку сервера, поэтому я знаю, что файл .htaccess используется.Кроме того, если я удалю файл .htaccess, hello.py больше не будет сервером с помощью modpython - вместо этого браузер попытается его открыть.
На одном из моих доступных сайтов (ссылка на сайты с поддержкой) у меня есть «AllowOverride None» для корневого каталога.Я думал, что это предотвратит включение .htaccess из корня и всех его подкаталогов, что должно привести к тому, что hello.py не будет обслуживаться mod_python.Тем не менее, он по-прежнему обслуживается нормально, и я могу проверить, включен ли .htaccess, потому что, когда я его изменяю, я вижу результаты в своем браузере.
Возможно, я чего-то не понимаю в своем файле с поддержкой сайтов.Это файл, который я использую:
NameVirtualHost *:8080
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>
Спасибо за любую помощь.
Решение
Причина, по которой файл не обслуживается через mod_python при удалении .htaccess, заключается в том, что в нем находится настройка mod_python.Если вы переместите этот материал в файл, доступный вашим сайтам, вы сможете удалить .htaccess, закрыть глаза на проблему и положить этому конец.
Если вас это не удовлетворяет, то почему вообще читается .htacess, я не могу сказать.Вы правы, что AllowOverride None должен запретить чтение файла.Рассматривали ли вы возможность того, что вы что-то напутали при добавлении виртуального сайта?Попробуйте добавить в конфигурацию немного мусора и посмотреть, будет ли он жаловаться, просто чтобы убедиться, что он вообще читается.
Другие советы
AllowOverride
разрешено только в <Directory>
-разделы, значит вы все сделали правильно.
Одна из проблем, с которой вы можете столкнуться, заключается в том, что другая (суб-)<Directory>
- набор секций AllowOverride
к чему-то иному, чем None
.Это отменит настройки для этих подкаталогов.я использую
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
И в /var/www
(мой документ) Я могу использовать .htaccess
эс.
Причина по которой mod_python
больше не работает, если вы удалите свой .htaccess
в том, что mod_python
настройка обычно находится в .htaccess
файлы.
Если вам нужна дополнительная информация, пришлите нам свою конфигурацию.
ПС:Фактически, в документации, указанной выше, говорится, что вы должны никогда набор AllowOverride
к чему-то нет None
в <Directory />
.