Mod rewrite 有没有办法将apache2中的路径重定向到另一个虚拟主机

Mod rewrite 有没有办法将apache2中的路径重定向到另一个虚拟主机,mod-rewrite,apache2,mod-wsgi,virtualhost,Mod Rewrite,Apache2,Mod Wsgi,Virtualhost,我有几个虚拟主机在一台机器上运行,我想覆盖从一个虚拟主机到另一个虚拟主机的路径。我最初的计划是使用mod rewrite,但我被绝对URL卡住了 我想要以下行为(不使用301重定向): 我使用以下配置对此进行了测试: <VirtualHost *:80> <Directory /var/lib/wsgi> Order allow,deny Allow from all </Directory> ServerName sub1.

我有几个虚拟主机在一台机器上运行,我想覆盖从一个虚拟主机到另一个虚拟主机的路径。我最初的计划是使用mod rewrite,但我被绝对URL卡住了

我想要以下行为(不使用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>

我也尝试过在sub2域内部使用,但也不起作用。

如果您没有进行任何url修改/奇特的匹配,为什么不试试

<VirtualHost ...>
    // sub1 site
    Redirect /sub2 http://sub2.example.com
</VirtualHost>

重定向会将客户端发送到另一个站点。我想对从sub1访问站点的客户端隐藏sub2虚拟主机。Alias仅适用于磁盘上的路径,不允许您修改主机名。然后使用Alias,它将使sub1站点的/sub2下的sub2站点的内容可用。据我所知,您不能使用Alias将流量定向到另一个虚拟主机。如果sub2提供的是静态文件,但它运行的是WSGI脚本,那么这就行了。别名不会重定向流量。它们是apache中有效的符号链接,使别名目录显示为站点的一部分,即使它可以完全指向webroot之外的目录。
[Fri Jul 08 16:09:05 2011] [error] [client 127.0.0.1] Invalid URI in request GET /sub2/ HTTP/1.1
<VirtualHost ...>
    // sub1 site
    Redirect /sub2 http://sub2.example.com
</VirtualHost>
Alias /sub2   /full/path/to/equivalent/directory/in/sub2