配置Apache vhost:具有内部站点的站点。可能?

时间:2010-07-16 15:06:12

标签: apache

我想知道我是否做错了什么

http://localhost指向目录D:\Projects\Websites

然后我想在http://learningzf中创建一个内部网站D:\Projects\Websites\php\ZendFramework\LearningZF\public。这样我就可以使用/users/login之类的URL而不是指定完整的URL

我发现如果我将vhosts中的条目添加到http://learningzfD:\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以下,则learningzflocalhost都会指向D:/Projects/Websites

更新

@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 个答案:

答案 0 :(得分:1)

您应该使用NameVirtualHost指令。 如果主机“learningzf”指向localhost,(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://localhosthttp://learningzf,Apache将知道应该使用哪个。 (默认情况下,它将转到D:/ Projects / Websites)。

注2:记得在“c:/ windows / system32 / drivers / etc / hosts”文件中添加“127.0.0.1 learningzf”行,以便解析主机名。