Я пытался понять это в течение нескольких дней. Я просто хочу иметь возможность ссылаться на мою локальную тестовую среду с помощью: placeholder.test

У меня есть следующее в моем httpd-vhosts.conf:

<VirtualHost *:80>
  DocumentRoot /root
  ServerName localhost

<Directory /root/site>
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>

</VirtualHost>

Это работает. У меня есть rewriterule, потому что сайт спроектирован таким образом, но я не могу получить виртуальный хост для работы placeholder.test .

Моя запись для placeholder.test выглядит так:

<VirtualHost placeholdercms.test:80> 
    DocumentRoot /root/site
    ServerName placeholder.test
    ServerAlias www.placeholder.test

<Directory /root/site>
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>

</VirtualHost>

Кроме того, я отредактировал свой файл hosts, добавив в него следующее:

127.0.01 localhost
::1 localhost
127.0.0.1 placeholder.test
127.0.0.1 www.placeholder.test

Независимо от того, что я делаю, я получаю:

Разрешение имени хоста (поиск DNS) для этого имени хоста (placeholder.test) не удалось.

Я думаю, что мне не хватает некоторой основной, но важной информации. Любая помощь будет очень высоко ценится.

2 ответа2

0

Кажется, в документации примеров Apache 2.4 VirtualHost нет ничего, что заставляет меня думать, что в директиве VirtualHost есть поддержка полных доменных имен.

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

<VirtualHost *:80> 
   ...
</VirtualHost>

Кроме того, вам нужно определить ту же запись для вашего локального файла /etc/hosts с IP-адресом компьютера, на котором должен быть запущен ваш экземпляр apache2.

0

Я думаю, что мне не хватает некоторой основной, но важной информации.

Да, вы. Посмотрите на конфигурацию виртуального хоста, которую вы предоставили:

<VirtualHost placeholdercms.test:80> 
    DocumentRoot /root/site
    ServerName placeholder.test
    ServerAlias www.placeholder.test

<Directory /root/site>
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>

</VirtualHost>

Теперь посмотрим на самую первую строку этого конфига:

<VirtualHost placeholdercms.test:80> 

Это placeholdercms.test - то, что душит установку. Просто измените его на:

<VirtualHost *:80> 

Комбинация * и ServerName/ServerAlias - это то, что работает для таких настроек виртуального хоста.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .