Apache VirtualHost mod_重写多个域同一文档根
我有一个定义了许多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 [……等等……] 我当前的配置是: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>
<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的配置文件将显示出来,并相应地提供请求
我希望这有帮助!祝你好运