У меня есть домашний сервер, который я использую для разработки, и что-то, с чем я сражаюсь, иногда я ввожу один 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 - имяVirtualHosthttp://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)
вы должны определить отдельный контейнер <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 *>, пожалуйста, попробуйте, какой из них работает.
вы должны определить отдельный контейнер <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 *>, пожалуйста, попробуйте, какой из них работает.
вы должны определить отдельный контейнер <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 *>, пожалуйста, попробуйте, какой из них работает.