Виртуальные хосты не работают или перенаправляются в WAMP

2227
pooria

У меня есть проблема, которая имеет место только в Google Chrome, и это нормально в Firefox и IE. Я погуглил много сайтов и сделал несколько советов, но ничего не получалось.

У меня установлен сервер WAMP. Я настроил два виртуальных хоста:

Проблема в том, что всякий раз, когда я ввожу localhost в адресную строку, он сразу же перенаправляется на enginter.local! И Chrome показывает эту ошибку для всех локальных URL:

Эта страница не работает

enginter.local не отправил никаких данных.

ERR_EMPTY_RESPONSE

httpd-vhosts.conf:

<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "d:/wamp/www/real/yegane" ServerName yegane.local ServerAlias www.yegane.local ErrorLog "logs/yegane.local-error.log" CustomLog "logs/yegane.local-access.log" common <Directory "/"> Require all granted </Directory> </VirtualHost>  <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot "d:/wamp/www/real/enginter" ServerName enginter.local ServerAlias www.enginter.local ErrorLog "logs/enginter.local-error.log" CustomLog "logs/enginter.local-access.log" common <Directory "/"> Require all granted </Directory> </VirtualHost> 

И это мой hostsфайл (в Windows 10):

127.0.0.1 localhost #::1 localhost  127.0.0.1 enginter.local 127.0.0.1 yegane.local 

Я попытался очистить кэш DNS здесь chrome: // net-internals / # dns, а также попытался сбросить все настройки по умолчанию в chrome: // flags, но не повезло!

Однажды я перезапустил систему, и проблема исчезла. но через некоторое время это случилось снова. А также порт 80 используется Apache.

Извините, если это сбивает с толку. Я запутался, и это заняло мое время на целую неделю.

ОБНОВИТЬ

Теперь все мои браузеры делают это!

ОБНОВЛЕНИЕ 2

httpd -S дает:

VirtualHost configuration: 127.0.0.1:* is a NameVirtualHost default server enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43) port * namevhost enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43) alias www.enginter.local port * namevhost yegane.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:57) alias www.yegane.local *:80 localhost (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:30) ServerRoot: "D:/wamp/bin/apache/apache2.4.23" Main DocumentRoot: "D:/wamp/www" Main ErrorLog: "D:/wamp/logs/apache_error.log" Mutex default: dir="D:/wamp/bin/apache/apache2.4.23/logs/" mechanism=default PidFile: "D:/wamp/bin/apache/apache2.4.23/logs/httpd.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG Define: APACHE24=Apache2.4 Define: VERSION_APACHE=2.4.23 Define: INSTALL_DIR=D:/wamp Define: APACHE_DIR=D:/wamp/bin/apache/apache2.4.23 
0
Ваши записи `ServerAlias` не совпадают с записями` hosts`. У одного есть `www`, у другого нет. DavidPostill 6 лет назад 1
@DavidPostill Спасибо. Теперь я прокомментировал записи `ServerAlias` и добавил новый виртуальный хост с именем ServerName` localhost` (указывающим на каталог www). Теперь происходит следующее: отображается содержимое `yegane, local` и` enginter, local`, но запрос на `localhost` перенаправляет (мгновенно) на` enginter.local` pooria 6 лет назад 0
* пожимает плечами * Я сказал вам, что было не так, и вы, кажется, сделали некоторые другие изменения ... DavidPostill 6 лет назад 1
Любой виртуальный хост "localhost" должен быть первым (перед любой другой записью хоста). ServerAlias ​​для вашего второго и третьего хостов должен выглядеть точно так, как указано в исходном примере вопроса (например, www.example.local и без комментариев). Anaksunaman 6 лет назад 0
@DavidPostill Извините, но вы говорите, что ServerAlias ​​делает это изменение обязательным, поэтому я прокомментировал это. Теперь я сделал, как вы сказали, и добавил `www. *. Local` (* для каждого виртуального хоста). Но ничего не изменилось. Опять же, `localhost` перенаправляет на` enginter.local` pooria 6 лет назад 0
@ Anaksunaman Спасибо, мой друг. Я переместил виртуальный хост с `ServerName`` localhost` в конец файла и раскомментировал записи `ServerAlias`, а также добавил эти псевдонимы в мой файл` hosts`. Снова ничего не изменилось и `localhost` перенаправляет на` enginter.local`. Будет ли проблема с кешем в моей системе ?! pooria 6 лет назад 0
Может быть. Если бы это была проблема с кэшированием, скорее всего, это было бы с браузером. Однако в качестве предложения я бы переместил запись "localhost" обратно наверх. Это должно помочь убедиться, что это первый проверенный хост. Anaksunaman 6 лет назад 0
Если вы решили сбросить что-то еще, кроме браузера, вы, вероятно, захотите сделать кэш DNS Windows. Anaksunaman 6 лет назад 0
@ Anaksunaman Спасибо. Я переместил запись для `localhost` в верхнюю часть (хотя в главном файле` httpd.conf` также есть `ServerName` и` DocumentRoot` для localhost) и очистил DNS-кеш Windows. неудачно! pooria 6 лет назад 0
Я отправил ответ. Хотя я не уверен, что это полностью поможет в вашем случае, я думаю, что это гарантирует, что мы находимся на той же странице. Я проверил запись с Chrome, она работает, и не должно быть никаких проблем. Если есть, я буду рад продолжать помогать, но это не может быть что-то легко решаемо. Anaksunaman 6 лет назад 0

1 ответ на вопрос

0
Anaksunaman

Я бы структурировал записи вашего виртуального хоста httpd-vhosts.confследующим образом:

# Assuming we wish to type in e.g. "localhost" in Chrome  <VirtualHost *:80> ServerAdmin admin@example.com ServerName localhost #ServerAlias should be unneeded  DocumentRoot "d:/wamp/www/real/localhost" # Or whatever directory is appropriated ErrorLog "logs/localhost.local-error.log" CustomLog "logs/locahost.local-access.log" common #... Other stuff ... </VirtualHost>  #... Other entries as listed ... 

Обратите внимание, что это #... Other stuff ...может быть Directoryинформация или что-то еще, что вы хотите включить, но не обязательно. Эта конфигурация должна дать вам доступ к «localhost» в вашем браузере, введя «localhost» или «127.0.0.1».

В основном файле httpd.conf также есть записи ServerName и DocumentRoot для localhost [.]

Вам не нужно ничего менять в DocumentRootin, httpd.confно вы должны изменить запись ServerName, в httpd.confчастности на что-то отличное от «localhost» (например, ServerName MyCoolServer= P).

Вы (конечно) захотите перезапустить свой сервер WAMP (Apache) и очистить кеш браузера (возможно, вы даже захотите сделать это дважды). В Chrome вы можете использовать chrome: // settings / clearBrowserData . Аналогичные результаты в Firefox могут быть достигнуты с помощью параметров * History -> Clear History ... * (по крайней мере, очистите настройки Browsing & Download History и Cache как можно раньше из выпадающего списка).

Спасибо чувак. Теперь с Chrome все в порядке, и у Firefox есть эта проблема -_-. Я сбрасывал DNS несколько раз. Я сделал много изменений в `httpd-vhosts.conf` и проблема все еще существует !! pooria 6 лет назад 0
Ну, это прискорбно. В моих тестах он работал нормально с Firefox, так что, возможно, это кеширование в браузере. Я бы использовал ту же настройку, что и выше, но использовал бы «История -> Очистить недавнюю историю» в Firefox. Я бы выбрал по крайней мере записи «Просмотр», «Файлы cookie» и «Кэш» и убедился, что для раскрывающегося списка времени установлено значение «С начала времени» (или что-то еще, что было выбрано раньше). Anaksunaman 6 лет назад 0

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