0
私は1台のマシン上で実行されているいくつかの仮想ホストを持っている、と私は別の上に1つの仮想ホストから一つのパスを上書きしたいと思いはあります。私の元々の計画はmodリライトを使用することでしたが、私は絶対URLに固執しました。別の仮想ホストへのapache2でのパスをリダイレクトする方法
私は(301のリダイレクトを使用せず。)、次のように動作したいと思います:
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
私は次のような構成でこれをテストしていた:私は、Python WSGIアプリケーションを実行しています
<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>
各サブドメインでhttp://sub1.example.com/sub2にアクセスすると、apache2は "400 Bad Request"を返し、これをログファイルに書き込みます。
[Fri Jul 08 16:09:05 2011] [error] [client 127.0.0.1] Invalid URI in request GET /sub2/ HTTP/1.1
私はまた、SUB2ドメインの内部ServerPathを使用してみましたが、それはまた、動作しません。
リダイレクトは、別のサイトにクライアントを送信します:エイリアスを使用するか、または
。私はsub1からサイトにアクセスしているクライアントからsub2仮想ホストを非表示にしたいと思います。エイリアスはディスク上のパスに対してのみ機能し、ホスト名を変更することはできません。 – user835673
次に、エイリアスを使用すると、sub1サイトの/ sub2の下でsub2サイトのコンテンツを利用できるようになります。 –
私が読んだことから、別名を使って別の仮想ホストにトラフィックを誘導することはできません。これは、sub2が静的ファイルを提供していても、WSGIスクリプトを実行している場合に機能します。 – user835673