Apache: Mapeie um virtualhost para um subdiretório de outro virtualhost

3

Estou tentando mapear um host virtual para um subdiretório de outro host virtual, algo parecido com este http://host2.com -> http://host1.com/host2 . No momento, sempre que vou para o link , ele é mapeado para o link de link

Meu arquivo de site padrão é este

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName "host1.com"

 <Directory /srv/www/host1>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Allow from all
 </Directory>

 DocumentRoot /srv/www/host1
 WSGIScriptAlias / /srv/www/host1/apache/django.wsgi

 </VirtualHost>

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    ServerName "host2.com"
    DocumentRoot /srv/www/host1

    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>

    ProxyPass / http://host1.com/host2
    ProxyPassReverse / http://host1.com/host2

</VirtualHost>

O que estou perdendo? Não tenho certeza se isso deve ser importante, mas estou usando o Django com o wsgi.

    
por Neo 30.03.2011 / 11:03

2 respostas

3

Isso pode ser feito usando um único <VirualHost /> , usando a diretiva ServerAlias . Em seguida, você pode usar o RewriteRule para passar essas solicitações para o diretório adequado e, deixando de usar [R] , você apenas estará reescrevendo a solicitação, deixando a URL intacta.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName host1.com
    ServerAlias host2.com

    <Directory /srv/www/host1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>

    DocumentRoot /srv/www/host1
    WSGIScriptAlias / /srv/www/host1/apache/django.wsgi

    RewriteEngine On
    RewriteCond %{HTTP_HOST} host2\.com [NC]
    RewriteRule (.*) /host2$1 [L]
</VirtualHost>

Espero que isso ajude.

    
por 31.03.2011 / 20:15
0

Aqui está outra postagem que pode ajudar: Redir

Eu não testei isso abaixo, mas você entendeu.

Você pode usar o redirecionamento:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.host2\.com [NC]

RewriteRule ^(.*)$ http://host1\.com\host2 [L,R=301]

    
por 30.03.2011 / 11:07