Переменная | Описание |
---|---|
%% | Символ % в имени каталога |
%p | Номер порта, используемый сервером |
% | Часть имени, отделенная от других частей точками. — это число, ссылающееся на компонент имени. 0 означает все доменное имя, 1 — первый компонент, 2 — второй компонент и т.д. Значение также может быть отрицательным: — 1 определяет последний компонент имени, — предпоследний компонент и т.д. принимает такие же значения, как и , но ссылается не на компонент имени, а на символ в составе компонента. Если вы хотите использовать весь компонент имени, точку и можно не указывать. |
Рассмотрим в качестве примера следующую запись:
VirtualDocumentRoot /home/httpd/%0
Она сообщает серверу о том, что он должен использовать подкаталог каталога /home/httpd
, имя которого соответствует полному имени сервера, указанному в составе запроса. Например, если в запросе задан URL 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
, Apache вернет клиенту файл /home/httpd/com/threeroomco/index.html
(если он имеется на сервере). Если вы хотите использовать в имени каталога лишь один символ из доменного имени, вам надо включить в состав конфигурационного файла запись наподобие следующей:
VirtualDocumentRoot /home/httpd/%-2.1/%0
Теперь при получении URL http://www.threeroomco.com/index.html
Apache вернет клиенту файл /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
. Данная директива указывается в главном конфигурационном файле Apache и информирует сервер о том, что вы собираетесь использовать виртуальные узлы. В качестве значения этой директивы чаще всего указывается символ *
; при этом необходимо определять виртуальные домены для поддержки всех типов обращения к серверу. Кроме того, значением опции NameVirtualHost
может быть IP-адрес, связанный с сетевым интерфейсом; в этом случае конфигурация основного сервера применяется ко всем запросам, за исключением запросов, переданных через этот интерфейс, и запросов, соответствующих определению виртуального узла.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии