我有一个VirtualHost,定义了许多ServerAlias域。在VirtualHost中使用mod重写,我希望发生以下情况:
sub.abc.com更改为sub.abc.com/?client_id=ABC
sub.def.com更改为sub.def.com/?client_id=DEF
sub2.abc.com更改为sub2.abc.com/?client_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>
但这实际上并没有重写。我很确定我的Cond或Rule搞砸了(哈哈......我猜这很明显)。有什么想法吗?
答案 0 :(得分:0)
建议:
让我们说你的域名sub.abc.com指向X ip地址。考虑在相同的IP地址X下创建两个额外的记录sub.def.com和sub2.abc.com。
这种做法称为Shared Web Hosting
这样,您可以为三个不同的域维护单独的配置文件。
因此,如果客户端访问sub2.abc.com - sub2.abc.com的配置文件将会出现,请求将相应地提供。
我希望这有帮助!祝你好运!