Конфигурирование Apache vhost: сайты, имеющие внутренние сайты. возможный? - PullRequest
0 голосов
/ 16 июля 2010

мне интересно, делаю ли я что-то неправильно

У меня есть http://localhost, указывая на каталог D:\Projects\Websites

тогда я хочу создать внутренний сайт http://learningzf в D:\Projects\Websites\php\ZendFramework\LearningZF\public. это так, что я могу использовать URL-адреса вроде /users/login вместо указания полного URL-адреса

Я считаю, что если я добавлю запись в vhosts, чтобы указать http://learningzf в D:\Projects\Websites\php\ZendFramework\LearningZF\public, localhost также будет указывать на D:\Projects\Websites\php\ZendFramework\LearningZF\public

<VirtualHost *:80>
    DocumentRoot "D:/Projects/Websites/php/ZendFramework/LearningZF/public"
    ServerName localhost
</VirtualHost>

<Directory "D:/Projects/Websites/php/ZendFramework/LearningZF/public">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from 127.0.0.1
</Directory>

<VirtualHost *:80>
    DocumentRoot "D:/Projects/Websites"
    ServerName localhost
</VirtualHost>

<Directory "D:/Projects/Websites">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from 127.0.0.1
</Directory>

я заметил, что если я переместу записи для learningzf ниже localhost, оба значения learningzf & localhost будут указывать на D:/Projects/Websites

UPDATE

следующий @ KikoV answer , я изменил его, чтобы он работал ...

NameVirtualHost 127.0.0.1:80

<VirtualHost localhost:80>
  ServerName localhost
  DocumentRoot "D:/Projects/Websites"
  <Directory "D:/Projects/Websites">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from 127.0.0.1
  </Directory>
 </VirtualHost>

<VirtualHost learningzf:80>
  ServerName learningzf
  DocumentRoot "D:/Projects/Websites/php/ZendFramework/LearningZF/public"
  <Directory "D:/Projects/Websites/php/ZendFramework/LearningZF/public">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from 127.0.0.1
  </Directory>
</VirtualHost>

1 Ответ

1 голос
/ 16 июля 2010

Вы должны использовать директиву NameVirtualHost.Если хост «learningzf» указывает на локальный хост (127.0.0.1), вы можете использовать:

Примечание. В _default _ последнее подчеркивание должно идти вместе.


   NameVirtualHost 127.0.0.1:80

     <VirtualHost _default _:80>
       ServerName localhost
        <Directory "D:/Projects/Websites">
          AllowOverride All
          Options All
          Order allow,deny
          Allow from 127.0.0.1
        </Directory>
     </VirtualHost>
    <VirtualHost learningzf:80>
       ServerName learningzf
        <Directory D:/Projects/Websites/php/ZendFramework/LearningZF/public">
          AllowOverride All
          Options All
          Order allow,deny
          Allow from 127.0.0.1
        </Directory>
     </VirtualHost>

Таким образом, выможет получить доступ к http://localhost и http://learningzf, и Apache будет знать, что следует использовать.(По умолчанию он перейдет в D: / Projects / Websites).

Примечание2: не забудьте добавить строку «127.0.0.1 learningzf» в файл c: / windows / system32 / drivers / etc / hosts, чтобычтобы разрешить имя хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...