виртуальный хост, предотвращающий по умолчанию

У меня есть домашний сервер, который я использую для разработки, и что-то, с чем я сражаюсь, иногда я ввожу один URL-адрес, и он загружает неправильный сайт,

, например:

https: //dev.demoapp.com => https://dev.demoapp.com (правильно) http://dev.demoapp.com => http://dev.mysite.com (Неверно)

, поэтому я пошел посмотреть, что Apache загружает все как:

https://dev.demoapp.com => https://dev.demoapp.com (правильно)

*: 443 - имяVirtualHost

http://dev.demoapp.com => http://dev.mysite.com (неверно)

порт 443 namevhost dev.demoapp.com (/ etc / apache2 / site-enabled / dev.demoapp.com.conf: 1) port 443 namevhost dev.test.com (/etc/apache2/sites-enabled/dev.test.com.conf:1) *: 80 является сервером по умолчанию NameVirtualHost dev.mysite.com (/etc/apache2/sites-enabled/dev.mysite.com.conf:1) порт 80 namevhost dev.mysite.com (/etc/apache2/sites-enabled/dev.mysite.com.conf : 1) порт 80 namevhost dev.local.com (/etc/apache2/sites-enabled/dev.local.com.conf:1)

VirtualHost conf iguration:

сервер по умолчанию dev.demoapp.com (/etc/apache2/sites-enabled/dev.demoapp.com.conf:1)

-1
задан 15 December 2017 в 21:00

3 ответа

вы должны определить отдельный контейнер <VirtualHost *:80> с ServeName /dev.demoapp.com или добавить строку ServerAlias /dev.demoapp.com в соответствующем существующем контейнере VirtualHost.

Вы НЕ МОЖЕТЕ обслуживать одни и те же VirtualHosts с разными портами из ONE <VirtualHost ..>, если вы не работаете с подстановочным знаком для порта.

Обычно я работаю с файлами Include для всех директив, которые совместно используются VirtualHosts, и только поместите конкретные директивы, такие как SSL * в отдельную <VirtualHost ..:443> (я даже помещаю каждый VIrtualHost в отдельный файл Include.)

Начиная с Apache httpd-2.3.11 нет эффективной директивы NameVirtualHost (в любое время, когда IP-адрес и комбинация портов используются в нескольких виртуальных хосты, виртуальный хостинг на основе имени автоматически включается для этого адреса - http://httpd.apache.org/docs/2.4/mod/core.html#namevirtualhost)

Кроме того, нет DEFAULT VirtualHost , первая найденная директива <VirtualHost> де-факто является дефолтом по умолчанию, то есть все клиентские запросы, чей заголовок HTTP_HOST явно не определен как ServerName o r ServerAlias в отдельном <VirtualHost> обслуживается первая конфигурация Virualhost.

Если вы хотите реализовать «DefaultHost» по умолчанию, вы можете поместить либо контейнер <VirtualHost *:80> в центральный httpd .conf до того, как вы включите какие-либо дополнительные файлы (до IncludeOptional /etc/apache2/sites-enabled/*.conf или что-то еще), или напишите файл с указанием vhost, который находится в верхней части списка, например. 0_default-vhost.conf, с <VirtualHost *:*> или <VirtualHost *>, пожалуйста, попробуйте, какой из них работает.

1
ответ дан 22 May 2018 в 16:59

вы должны определить отдельный контейнер <VirtualHost *:80> с ServeName /dev.demoapp.com или добавить строку ServerAlias /dev.demoapp.com в соответствующем существующем контейнере VirtualHost.

Вы НЕ МОЖЕТЕ обслуживать одни и те же VirtualHosts с разными портами из ONE <VirtualHost ..>, если вы не работаете с подстановочным знаком для порта.

Обычно я работаю с файлами Include для всех директив, которые совместно используются VirtualHosts, и только поместите конкретные директивы, такие как SSL * в отдельную <VirtualHost ..:443> (я даже помещаю каждый VIrtualHost в отдельный файл Include.)

Начиная с Apache httpd-2.3.11 нет эффективной директивы NameVirtualHost (в любое время, когда IP-адрес и комбинация портов используются в нескольких виртуальных хосты, виртуальный хостинг на основе имени автоматически включается для этого адреса - http://httpd.apache.org/docs/2.4/mod/core.html#namevirtualhost)

Кроме того, нет DEFAULT VirtualHost , первая найденная директива <VirtualHost> де-факто является дефолтом по умолчанию, то есть все клиентские запросы, чей заголовок HTTP_HOST явно не определен как ServerName o r ServerAlias в отдельном <VirtualHost> обслуживается первая конфигурация Virualhost.

Если вы хотите реализовать «DefaultHost» по умолчанию, вы можете поместить либо контейнер <VirtualHost *:80> в центральный httpd .conf до того, как вы включите какие-либо дополнительные файлы (до IncludeOptional /etc/apache2/sites-enabled/*.conf или что-то еще), или напишите файл с указанием vhost, который находится в верхней части списка, например. 0_default-vhost.conf, с <VirtualHost *:*> или <VirtualHost *>, пожалуйста, попробуйте, какой из них работает.

1
ответ дан 18 July 2018 в 01:10

вы должны определить отдельный контейнер <VirtualHost *:80> с ServeName /dev.demoapp.com или добавить строку ServerAlias /dev.demoapp.com в соответствующем существующем контейнере VirtualHost.

Вы НЕ МОЖЕТЕ обслуживать одни и те же VirtualHosts с разными портами из ONE <VirtualHost ..>, если вы не работаете с подстановочным знаком для порта.

Обычно я работаю с файлами Include для всех директив, которые совместно используются VirtualHosts, и только поместите конкретные директивы, такие как SSL * в отдельную <VirtualHost ..:443> (я даже помещаю каждый VIrtualHost в отдельный файл Include.)

Начиная с Apache httpd-2.3.11 нет эффективной директивы NameVirtualHost (в любое время, когда IP-адрес и комбинация портов используются в нескольких виртуальных хосты, виртуальный хостинг на основе имени автоматически включается для этого адреса - http://httpd.apache.org/docs/2.4/mod/core.html#namevirtualhost)

Кроме того, нет DEFAULT VirtualHost , первая найденная директива <VirtualHost> де-факто является дефолтом по умолчанию, то есть все клиентские запросы, чей заголовок HTTP_HOST явно не определен как ServerName o r ServerAlias в отдельном <VirtualHost> обслуживается первая конфигурация Virualhost.

Если вы хотите реализовать «DefaultHost» по умолчанию, вы можете поместить либо контейнер <VirtualHost *:80> в центральный httpd .conf до того, как вы включите какие-либо дополнительные файлы (до IncludeOptional /etc/apache2/sites-enabled/*.conf или что-то еще), или напишите файл с указанием vhost, который находится в верхней части списка, например. 0_default-vhost.conf, с <VirtualHost *:*> или <VirtualHost *>, пожалуйста, попробуйте, какой из них работает.

1
ответ дан 24 July 2018 в 17:20

Другие вопросы по тегам:

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