tags:

views:

14

answers:

1

i am wondering if i am doing some thing wrong

i have http://localhost pointing to the directory D:\Projects\Websites

then i want to create a inner site http://learningzf in D:\Projects\Websites\php\ZendFramework\LearningZF\public. this is so that i can use URL's like /users/login instead of specifying the full url

i find that if i add the entry in vhosts to point http://learningzf to D:\Projects\Websites\php\ZendFramework\LearningZF\public, localhost will also point to 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>

i noticed if i move the entries for learningzf below localhost, both learningzf &localhost will point to D:/Projects/Websites

UPDATE

following @KikoV answer, i have modified it to make it work ...

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  A: 

You should use NameVirtualHost directive. If host "learningzf" is pointing to localhost, (127.0.0.1), you could use:

Note: In _default _ , last underscore should go togheter.


   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>

This way you could access to http://localhost and http://learningzf and Apache will know which should use. (By default, it will go to D:/Projects/Websites).

Note2: remember to add "127.0.0.1 learningzf" line to c:/windows/system32/drivers/etc/hosts file in order to get hostname resolved.

KikoV
it seems now, `http://localhost` is going to `C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs`... so i made afew changes ... add `DirectoryRoot` and then `http://learningzf` works. `http://localhost` points to apache htdocs. so i changed `_default_` to `localhost`. full code posted in update in post
jiewmeng
yup!, I forgot the DocumentRoot... sorry,
KikoV