Назад | Перейти на главную страницу

Каталог DocumentRoot Apache httpd

Я хочу внести изменения в свой файл httpd.conf для Apache, работающего в Windows, но я хочу знать, почему нужно использовать (или объявлять) один и тот же корень дважды.

DocumentRoot "C:/Apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "C:/Apache/htdocs">
    AllowOverride None
    Order allow,deny
    Allow from all
  Options None
</Directory>

Если первый имеет все о безопасности или доступе, к которому нужно обращаться DocumentRoot, зачем мне снова заявлять

В этом случае разные, могу ли я пропустить последние объявления вроде: <Directory "C: / Apache / htdocs">?

Может ли Apache работать без последнего <Directory "C: / Apache / htdocs">?

Я не понимаю смысла.

Спасибо.

Я из UNIX / Linux, но я думаю, что вы немного неправильно читаете конфигурацию. Разобьем ваш конфиг на 3 раздела (ну, он уже есть на 3 раздела).

Во-первых, DocumentRoot полностью сам по себе, игнорируйте это для своей проблемы / вопроса.

Во-вторых, «Каталог /» настроен на Запретить всем. Это НЕ для вашего DocumentRoot, это для корня вашей файловой системы (я действительно не знаю, как Apache интерпретирует это в Windows, но это верно для Linux и UNIX).

В-третьих, каталог «C: / Apache / htdocs» настроен на Разрешить от всех из вашего DocumentRoot.

Это базовая настройка производительности и безопасности Apache, которая, вероятно, используется по умолчанию почти в каждом распространении Apache HTTPD на данный момент.

«AllowOverride None» из первого списка каталогов не позволяет Apache проверять каждый каталог НАД корнем документа на предмет переопределений (файлы .htaccess).

Из документов Apache: When this directive is set to None, then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.

Итак, если вы удалите раздел «Directory /»: тогда Apache будет искать c: /. Htaccess и c: /Apache/.htaccess, прежде чем попадет в каталог «Directory C: / Apache / htdocs». Дальнейшие поиски не потребуются, поскольку для c: / Apache / htdocs установлено значение «AllowOverride None». Ваш веб-сайт загрузится, но вы без нужды увеличиваете объем работы, которую Apache должен выполнять для его обслуживания.

Теперь, если вы удалите раздел «Каталог« C: / Apache / htdocs »»: тогда вы застрянете с настройками для «Каталог /», которые включают «Запретить всем». Ваш сайт НЕ загрузится.

Конфигурация как есть мне кажется правильной.