Порядок директив Apache: Global, Pre-VHost или в блоках Directory

Я настраиваю свой первый виртуальный сервер с нуля (имя провайдера опущено, но это «капля»). Я использую WHM некоторое время и чувствую, что довольно хорошо с ним знаком.

В частности, это машина Debian 8, htaccess (а не AllowOverrides из соображений производительности), поэтому я пытаюсь понять, как заставить это работать в apache.conf (помещая их в файл, вызов через include допустим, так как их уже несколько).

2
задан 26 December 2015 в 23:58
1 ответ

Что касается правил перезаписи, то они разрешены в конфигурации главного сервера, но они не действуют для VirtualHosts. Что-то скрытое в руководстве упоминается несколько случайно:

Обратите внимание, что перезаписываемые конфигурации являются не унаследованными виртуальными хостами. Это означает, что вам нужно иметь директиву RewriteEngine on для каждого виртуального хоста , в котором вы хотите использовать правила перезаписи.

Таким образом, универсальный набор правил в включаемом файле как часть каждого VirtualHost кажется выходом.

В общем, однако, это не так: В руководстве приведен список для каждой директивы. где это разрешено, что всегда является одним или несколькими конфигурациями:

  • сервера config
    Это означает, что директива может быть использована в конфигурационных файлах сервера (например, httpd.conf), но не в любых контейнерах или . Это вообще не разрешено в .htaccess файлах.

  • виртуальный хост
    Этот контекст означает, что директива может появиться внутри контейнеров в конфигурационных файлах сервера.

  • directory
    Директива, помеченная как действительная в этом контексте, может быть использована внутри контейнеров , , , , и в конфигурационных файлах сервера, с учетом ограничений, описанных в разделе Configuration Sections.

  • .htaccess
    Если директива действительна в этом контексте, это означает, что она может появиться внутри per-directory .htaccess файлов. Она может не обрабатываться, хотя в зависимости от переопределений, действующих в данный момент.

Директивы в конфигурации главного сервера применяются ко всему серверу,
. директивы внутри применяются только к этому виртуальному хосту
. и есть целая глава о том, как все секции соединяются: https://httpd.apache.org/docs/2.4/en/sections.html

1
ответ дан 3 December 2019 в 12:42

Теги

Похожие вопросы