Apache VirtualHost mod_重写多个域同一文档根

Apache VirtualHost mod_重写多个域同一文档根,apache,mod-rewrite,Apache,Mod Rewrite,我有一个定义了许多ServerAlias域的VirtualHost。在VirtualHost中使用mod rewrite,我希望发生以下情况: sub.abc.com更改为sub.abc.com/?client\u id=abc sub.def.com更改为sub.def.com/?client_id=def sub2.abc.com更改为sub2.abc.com/?client\u id=GHI [……等等……] 我当前的配置是: <VirtualHost 1.2.3.4:8080>

我有一个定义了许多ServerAlias域的VirtualHost。在VirtualHost中使用mod rewrite,我希望发生以下情况:

sub.abc.com更改为sub.abc.com/?client\u id=abc

sub.def.com更改为sub.def.com/?client_id=def

sub2.abc.com更改为sub2.abc.com/?client\u id=GHI

[……等等……]

我当前的配置是:

<VirtualHost 1.2.3.4:8080>
  ServerName sub.abc.com
  ServerAlias sub.def.com sub2.abc.com

  DocumentRoot /var/www/prod/

  [... some other things ...]

  <IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^sub\.abc\.com
    RewriteRule ^/([0-9]+)/?$ login.php?client_id=ABC [NC,L]
    RewriteCond %{HTTP_HOST} ^sub\.def\.com
    RewriteRule ^/([0-9]+)/?$ login.php?client_id=DEF [NC,L]
    RewriteCond %{HTTP_HOST} ^sub2\.abc\.com
    RewriteRule ^/([0-9]+)/?$ login.php?client_id=GHI [NC,L]
  </IfModule>   

</VirtualHost>
但这实际上并不能重写。。我很确定我的条件或规则是一团糟哈哈。。我想这是很明显的。有什么想法吗?

建议:

假设您的域名sub.abc.com指向X ip地址。考虑在同一个IP地址X下创建两个额外的记录子.DEF.com和SUB2.ABC.com。 这种做法被称为 通过这种方式,您可以为三个不同的域维护单独的配置文件

因此,如果客户机访问sub2.abc.com,那么sub2.abc.com的配置文件将显示出来,并相应地提供请求

我希望这有帮助!祝你好运