httpd - виртуальные хосты переходят к тому же веб-сайту

вот мой/etc/httpd/conf.d/test.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName test.dev
    ServerAlias test.dev.*.xip.io
    DocumentRoot /var/www/html/user/test/web
    ErrorLog "/var/www/html/user/test/app/logs/httpd_error.log"
    CustomLog "/var/www/html/user/test/app/logs/httpd_access.log" combined
    <Directory "/var/www/html/user/test/web">
        # AllowOverride All      # Deprecated
        # Order Allow,Deny       # Deprecated
        # Options All
        # Allow from all         # Deprecated
        # Require all granted    # << New way of doing it
        Options +FollowSymlinks +Indexes
        AllowOverride all
    </Directory>
</VirtualHost>

Доступ к http://test.dev.192.168.1.4.xip.io/ успешно перенаправляет меня к надлежащему веб-сайту. Доступ к http://192.168.1.4/ также перенаправляет меня к тому же веб-сайту вместо индекса, который я ожидал видеть. Кроме того, доступ к http://test.dev-some-random-string.192.168.1.4.xip.io/ также перенаправит меня к тому же веб-сайту.

Как я настраиваю это поэтому, когда я попытаюсь получить доступ к тесту dev.192.168.1.4.xip.io, я закончу в странице, которую я кодирую, в то время как доступ 192.168.1.4.xip.io покажет мне домашнюю страницу.

Я в настоящее время использую песни 6 выполнений в виртуальном поле с соединенным мостом адаптером для сети. Вот мой/etc/httpd/conf/httpd.conf.

http://pastebin.com/iFBin5Lu

3
задан 7 June 2015 в 11:33
2 ответа

Если вы определяете только один виртуальный хост, то все запросы к httpd будут обслуживаться этим виртуальным хостом, независимо от того, совпадают ли они с ServerName или ServerAlias, потому что первый виртуальный хост также является значением по умолчанию виртуальный хост. Найдите «виртуальный хост по умолчанию» в документации Apache «Поддержка виртуального хоста на основе имени» .

Обратите внимание, что после определения любого виртуального хоста имя сервера по умолчанию исчезает, и вы должны определить новый виртуальный хост, чтобы воссоздать его, если вы все еще хотите его использовать. См. Вставку «Главный хост уходит» по приведенной выше ссылке.

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

<VirtualHost *:80>
    DocumentRoot /var/www/html
</VirtualHost>

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

0
ответ дан 3 December 2019 в 08:27

Вам необходимо определить VirtualHost для каждой веб-страницы, которую вы хотите показать; даже если 192.168.1.4 является основным, вам также необходимо определить VirtualHost, где определите «ServerAlias ​​192.168.1.4». Если есть только один VirtualHost, вы всегда будете перенаправлены на сайт, указанный в ServerAlias.

-1
ответ дан 3 December 2019 в 08:27

Теги

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