Apache virtual hosts - Resources on website not loaded when accessed from other hostname than localhost

Posted by Christian Stadegaart on Pro Webmasters See other posts from Pro Webmasters or by Christian Stadegaart
Published on 2012-10-30T15:56:03Z Indexed on 2012/10/30 17:21 UTC
Read the original article Hit count: 242

Filed under:
|
|

Running virtual hosts on Mac OS X 10.6.8 running Apache 2.2.22.

/etc/hosts is as follows:

127.0.0.1       localhost     3dweergave   studio-12.fritz.box
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

Virtual hosts configuration:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/opt/local/www/3dweergave"
    ServerName 3dweergave
    ErrorLog "logs/3dweergave-error_log"
    CustomLog "logs/3dweergave-access_log" common
    <Directory "/opt/local/www/3dweergave">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName main
</VirtualHost>

This will output the following settings:

*:80 is a NameVirtualHost
default server 3dweergave (/opt/local/apache2/conf/extra/httpd-vhosts.conf:21)
port 80 namevhost 3dweergave (/opt/local/apache2/conf/extra/httpd-vhosts.conf:21)
port 80 namevhost main (/opt/local/apache2/conf/extra/httpd-vhosts.conf:34)

I made 3dweergave the default server by putting it first in the list. This will cause all undefined virtual hosts' names to load 3dweergave, and thus http://localhost will point to 3dweergave. Of course, normally, the first in the list is the virtual host main and localhost will point to main, but for testing purposes I switched them.

When I navigate to http://localhost, my CakePHP default homepage shows as expected: Screenshot 1

But when I navigate to http://3dweergave, my CakePHP default homepage doesn't show as expected. It looks like every relative link to resources are not accepted by the server: Screenshot 2

For example, the CSS isn't loaded. When I open the source and click on the link, it opens the CSS file in the browser without errors. But when I run FireBug while loading the webpage, it seems that the CSS file isn't retrieved. (<link rel="stylesheet" type="text/css" href="/css/cake.generic.css" />)

How can I fix this unwanted behaviour?

© Pro Webmasters or respective owner

Related posts about apache2

Related posts about virtualhost