Проблема с apache vhost _default_ и localhost

Не знаю, как лучше описать это для названия. Проблема в:

Я широко использую виртуальные хосты для своей работы, но иногда я просто загружаю некоторые файлы на локальный/мой сайт.

Когда я использую виртуальный хост (т. е. mysite.local), я могу настроить свой первый виртуальный хост так, как он поставляется «из коробки», а затем поместить блок виртуального хоста mysite.local:

<VirtualHost _default_:80>
   DocumentRoot C:/UniServer/www
   ServerName localhost
   ErrorLog "logs/error.log"
   CustomLog "logs/access.log" common
</VirtualHost>

<VirtualHost 127.0.0.1>
ServerAdmin webmaster@localhost
ServerName mysite.local
DocumentRoot "C:/UniServer/www/mysite/public_html/"
SetEnv ENVIRONMENT localhost
</VirtualHost>

Но если я хочу использовать localhost/mysite, я должен изменить его на:

<VirtualHost localhost:80>
    DocumentRoot C:/UniServer/www
    ServerName localhost
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

Очевидно, что это боль, поскольку она включает перезапуск apache.

мой httpd.conf установлен на:

имя_сервера

.htaccess, похоже, не влияет на это. Был бы очень признателен, если бы кто-нибудь мог дать мне руководство по этому поводу!

РЕДАКТИРОВАТЬ: должен был упомянуть, когда я хочу использовать mysite.local, я НЕ МОГУ использовать:

<VirtualHost localhost:80>

Я ДОЛЖЕН использовать:

<VirtualHost _default_:80>

Так что "ломается" в обе стороны

Спасибо,

Джефф


person jmadsen    schedule 06.10.2012    source источник


Ответы (2)


Ну, яйцо на моем лице - вроде

<VirtualHost localhost>  for localhost/mysite

а также

<VirtualHost 127.0.0.1> for mysite.local

РАБОТАЕТ, с портом или без него, ЕСЛИ ОНИ СООТВЕТСТВУЮТ (оба: 80 или оба ничего)

НО

<VirtualHost _default_>  for localhost/mysite

просто не работает, ни как, ни как - годится только для mysite.local

Это с файлом hosts: 127.0.0.1 localhost 127.0.0.1 mysite.local

Было бы интересно, если бы кто-нибудь мог объяснить, почему "по умолчанию" ведет себя таким образом.

person jmadsen    schedule 06.10.2012

Похоже, вы делаете это на окнах. Выньте SetEnv в нижней части вашего VHost mysite.local, и вам нужно будет проверить 2 вещи:

Убедитесь, что в вашем файле hosts или локальном DNS есть запись для mysite.local, указывающая на 127.0.0.1. Файл hosts в Windows находится в папке c:\windows\system32\drivers\etc\hosts.

Если это не поможет, убедитесь, что вы настроены на именованные виртуальные хосты, например:

NameVirtualHost *:80

or

NameVirtualHost 127.0.0.1:80 
person codewrangler    schedule 06.10.2012
comment
Спасибо - SetEnv не имеет к этому никакого отношения (хотя я перепроверил, чтобы быть уверенным). Файл Hosts в порядке - извините, я забыл упомянуть, что пробовал с и без NameVirtualHost *: 80, но безуспешно. поэкспериментирую еще немного - person jmadsen; 06.10.2012
comment
О, только что заметил, что ваши строки VirtualHost не совпадают. Добавьте :80 ко второму. Должно быть ‹VirtualHost 127.0.0.1:80› - person codewrangler; 06.10.2012
comment
Я ценю, что вы пытаетесь помочь, но на самом деле это не синтаксическая ошибка. То, что вы предлагаете, не имеет отношения к проблеме. Пожалуйста, изучите вопрос более внимательно. - person jmadsen; 06.10.2012