Я пытаюсь сопоставить один виртуальный хост с подкаталогом другого виртуального хоста, примерно так http://host2.com -> http://host1.com/host2
. В этот момент, когда я иду в http://host2.com это соответствует http://host1.com вместо того http://host1.com/host2
Мой файл сайта по умолчанию - это
<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>
Что мне не хватает? Я не уверен, имеет ли это значение, но я использую Django с wsgi.
На самом деле это можно сделать с помощью одного <VirualHost />
, используя ServerAlias
директива. Затем вы можете использовать RewriteRule
передать эти запросы в соответствующий каталог и, оставив [R]
вы просто переписываете запрос, оставляя URL без изменений.
<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>
Надеюсь это поможет.
Вот еще один пост, который может помочь: Редир
Я не тестировал это ниже, но вы поняли.
Вы можете использовать перенаправление:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.host2\.com [NC]
RewriteRule ^(.*)$ http://host1\.com\host2 [L,R=301]