0
我在一臺機器上運行了多個虛擬主機,並且我想重寫從一個虛擬主機到另一個虛擬主機的一條路徑。我原來的計劃是使用國防部重寫,但我堅持絕對的網址。有沒有辦法將apache2中的路徑重定向到另一個虛擬主機
我想以下行爲,(不使用301個重定向。):
<VirtualHost *:80>
<Directory /var/lib/wsgi>
Order allow,deny
Allow from all
</Directory>
ServerName sub1.example.com
WSGIScriptAlias//var/lib/wsgi/sub1.wsgi
WSGIDaemonProcess sub1 display-name=%{GROUP}
WSGIProcessGroup sub1
RewriteEngine on
RewriteRule ^/sub2/(.*)$ http://sub2.example.com/sub2/$1 [PT]
</VirtualHost>
<VirtualHost *:80>
<Directory /var/lib/wsgi>
Order allow,deny
Allow from all
</Directory>
ServerName sub2.example.com
WSGIScriptAlias//var/lib/wsgi/sub2.wsgi
WSGIDaemonProcess sub2 display-name=%{GROUP}
WSGIProcessGroup sub2
</VirtualHost>
我運行一個Python WSGI應用:
http://sub1.example.com/sub2 -> sub2.example.com virtual host
# Everything but sub2/.*
http://sub1.example.com/ -> sub1.example.com virtual host
http://sub2.example.com/ -> sub2.example.com virtual host
我是用下面的配置測試了這一點在每個子域中。當您訪問http://sub1.example.com/sub2時,apache2返回「400錯誤請求」並將其放入日誌文件中。
[Fri Jul 08 16:09:05 2011] [error] [client 127.0.0.1] Invalid URI in request GET /sub2/ HTTP/1.1
我也曾嘗試使用ServerPath的SUB2域之內,但也不能正常工作。
重定向將客戶端發送到另一個站點。我想從sub1中訪問站點的客戶端隱藏sub2虛擬主機。別名僅適用於磁盤上的路徑,並且不允許您修改主機名。 – user835673
然後使用別名,它會使sub2網站中/ sub2下的sub2網站的內容可用。 –
從我讀過的內容中,您不能使用別名將流量定向到其他虛擬主機。如果sub2正在提供靜態文件,但是它正在運行WSGI腳本,則這會起作用。 – user835673