Переменная | Описание |
---|---|
%% | Символ % в имени каталога |
%p | Номер порта, используемый сервером |
% | Часть имени, отделенная от других частей точками. — это число, ссылающееся на компонент имени. 0 означает все доменное имя, 1 — первый компонент, 2 — второй компонент и т.д. Значение также может быть отрицательным: — 1 определяет последний компонент имени, — предпоследний компонент и т.д. принимает такие же значения, как и , но ссылается не на компонент имени, а на символ в составе компонента. Если вы хотите использовать весь компонент имени, точку и можно не указывать. |
Рассмотрим в качестве примера следующую запись:
VirtualDocumentRoot /home/httpd/%0
Она сообщает серверу о том, что он должен использовать подкаталог каталога /home/httpd
http://www.threeroomco.com/index.html
, сервер будет искать файл /home/httpd/www.threeroomco.com/index.html
. Такой способ очень удобен, но если вам необходимо поддерживать большое количество Web-узлов, то придется создавать много подкаталогов с достаточно длинными именами (в данном примере все подкаталоги должны присутствовать в каталоге /home/httpd
). При необходимости вы можете использовать в качестве имени каталога часть доменного имени. Пример подобного подхода иллюстрирует приведенная ниже запись.VirtualDocumentRoot /home/httpd/%-1/%-2
Если в конфигурационном файле содержится такое выражение, то, получив запрос, в котором указан URL http://www.threeroomco.com/index.html
/home/httpd/com/threeroomco/index.html
(если он имеется на сервере). Если вы хотите использовать в имени каталога лишь один символ из доменного имени, вам надо включить в состав конфигурационного файла запись наподобие следующей:VirtualDocumentRoot /home/httpd/%-2.1/%0
Теперь при получении URL http://www.threeroomco.com/index.html
/home/httpd/t/www.threeroomco.com/index.html
. Переменная %-2.1
определяет первый (.1
) символ в составе имени домена (-2
), предшествующего имени домена верхнего уровня.Независимо от значения директивы VirtualDocumentRoot
Off
для директивы UseCanonicalName
.UseCanonicalName Off
Если директива UseCanonicalName
On
, устанавливаемое по умолчанию при инсталляции сервера, Apache будет использовать для обработки относительных ссылок доменное имя компьютера, на котором он выполняется. Например, если в документе index.html
содержится ссылка на Web-страницу products.html
, Apache будет стараться извлечь ее, основываясь на своем каноническом имени. При наличии виртуальных доменов такое поведение недопустимо. Если задать значение Off
директивы UseCanonicalName
, то для обработки относительных ссылок Apache будет применять имя, соответствующее виртуальному домену.
Альтернативный подход к созданию виртуальных доменов предполагает непосредственное описание каждого из них. Для этого в конфигурационном файле Apache предусмотрены две специальные директивы.
• NameVirtualHost
*
; при этом необходимо определять виртуальные домены для поддержки всех типов обращения к серверу. Кроме того, значением опции NameVirtualHost
может быть IP-адрес, связанный с сетевым интерфейсом; в этом случае конфигурация основного сервера применяется ко всем запросам, за исключением запросов, переданных через этот интерфейс, и запросов, соответствующих определению виртуального узла.