2014-12-04 86 views
0

我有一个虚拟主机与许多ServerAlias域定义。在虚拟主机使用国防部重写,我想下面的发生:VirtualHost mod_rewrite多个域相同DocumentRoot

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

建议:

比方说,您的域名sub.abc.com指向X的IP地址。考虑相同的IP地址X

这种做法被称为Shared Web Hosting

这样你就可以保持独立的配置文件,你的三个不同的域下创建两个额外的记录sub.def.com和sub2.abc.com。

所以如果一个客户端访问sub2.abc.com - sub2.abc.com的配置文件将进入图片和请求将相应地服务。

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