O problema, até onde eu entendo de hospedagem virtual Apache, é que você está usando um pega-tudo na sua configuração de hosts virtuais e usando um DocumentRoot mútuo, em vez de definir explicitamente cada nome do VHost e DocumentRoot:
*: 8080 é a sua configuração base NameVirtualHost.
Isso irá capturar todas as solicitações para: 8080 e redirecionará todas as solicitações para o host virtual que corresponda à diretiva.
Torna-se problemático quando você tem duas diretivas Vhost que são nomeadas da mesma forma, e um dos DocumentRoot da diretiva corresponde ao DocumentRoot do servidor. Se não houver um DocumentRoot "Overriding" que o servidor tenha separadamente, o Apache avaliará o DocumentRoot de cada Vhost, encontrando o "Occam's Razor" dos valores encontrados se vários Vhost compartilharem um caminho raiz.
Neste caso ... \ htdocs é o DocumentRoot para ambos, porque ... \ images está contido dentro de ... \ htdocs. Assim, qualquer pedido será automaticamente padronizado para o Vhost que oferece somente ... \ htdocs como seu DocumentRoot.
Eu percebi que isso era um pouco confuso, então para corrigir isso: Mude para a hospedagem virtual baseada em nome.
UPDATE (2009-08-25)
Há algo que preciso esclarecer antes de prosseguir:
O Apache e outros servidores da web nunca escutam: 8080 por padrão. Além disso, os clientes da Web, como o Firefox, nunca fazem uma solicitação para: 8080 por padrão. Eu assumi que você entendeu isso a partir do seu post original, uma vez que sua diretiva VHost mostrou uma porta não padrão de: 8080. Agora, não tenho tanta certeza disso.
Para que a revisão anterior da minha postagem funcione para você, já que ela foi configurada (sem os redirecionamentos da porta 80 ou o que você tem), é necessário especificar a porta ao solicitar uma página:
Eu deveria ter incluído essa informação. Como eu disse, presumi que estava claro no seu post original. Minhas desculpas por isso. Por extensão, eu também presumi que você estava configurando dessa maneira porque outro servidor estava escutando na porta 80. Se isso for verdade, então você pode considerar combinar os dois servidores em uma configuração ou desativar a alternativa enquanto faz seu trabalho com o xampp .
Portanto, vamos corrigir as diretivas do VHost para ouvir a porta 80, que é a porta padrão de onde as páginas são atendidas e solicitadas pelos servidores e clientes, respectivamente.
Também vou me dedicar aos comentários sobre como definir as permissões localizadas para as pastas das quais você está veiculando dados, pois estou preocupado que haja uma / Diretiva que esteja afetando sua capacidade de obter páginas de seus sites .
Diretivas do VirtualHost ATUALIZADAS (2009-08-25):
NameVirtualHost localhost:80
<VirtualHost localhost:80>
ServerName localhost
# Naturally, this can be changed to a real email.
ServerAdmin [email protected]
# Set our DocRoot for the VHost.
DocumentRoot c:\xampp\htdocs
# Define access perms for our DocRoot.
<Directory "c:\xampp\htdocs">
# We're going to define Options, Override perms, and Allow directives.
# FollowSymLinks probably doesn't work in Windows, but we'll keep it for posterity.
Options Indexes MultiViews FollowSymLinks
# Disallow Override
AllowOverride None
# Setup 1. Allow only *from* localhost. Comment out the following 3 lines,
# and uncomment Setup 2 below to allow access from all.
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0
# Setup 2. Allow all. Uncomment the following 2 lines, and comment out Setup 1.
#Order allow,deny
#Allow from all
</Directory>
</VirtualHost>
<VirtualHost images.localhost:80>
ServerName images.localhost
# Naturally, this can be changed to a real email.
ServerAdmin [email protected]
# Set our DocRoot for the VHost.
DocumentRoot c:\xampp\htdocs\images
# Define access perms for our DocRoot.
<Directory "c:\xampp\htdocs\images">
# We're going to define Options, Override perms, and Allow directives.
# FollowSymLinks probably doesn't work in Windows, but we'll keep it for posterity.
Options Indexes MultiViews FollowSymLinks
# Disallow Override
AllowOverride None
# Setup 1. Allow access only from localhost. Comment out the following 3 lines,
# and uncomment Setup 2 below.
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0
# Setup 2. Allow all. Uncomment the following 2 lines, and comment out Setup 1.
#Order allow,deny
#Allow from all
</Directory>
</VirtualHost>
O Apache ficará irritado com essa configuração se não houver um nome DNS correspondente que possa ser encontrado para um host virtual, portanto, a recomendação anterior sobre a modificação do arquivo de hosts do sistema ainda é precisa. Observe que, quando você edita o arquivo hosts, você pode colocar todos os aliases de um único IP na mesma linha, poupando-lhe alguma confusão.
127.0.0.1 localhost images.localhost
Você também pode fazer Vhosting baseado em IP, mas eu não recomendaria isso. É muito mais envolvido do que o que você está fazendo e é apenas "realmente" necessário quando você está lidando com vários vHosts usando SSL.
De qualquer forma, a configuração que descrevi funciona exatamente como esperado no meu sistema (Ubuntu 8.10 x86_64, Apache 2.2.9) e também deve funcionar bem no seu.