2012-03-15 53 views
3

所以我成立了一个Amazon EC2的和registerd与123-REG几个领域,我已经建立了我的Apache虚拟主机但现在我会需要设置一个几个子域(如小猫 .example.com)。但它只是将是一个数,我想的子域通配符休息去基地这样的:重定向子域酒吧一个

小猫 .example.com的 - >小猫 .example.com的

* .example.com的 - > example.com

目前我与123-REG DNS如下:

 
www   A  198.168.0.0
kitten A 198.168.0.0
* A 198.168.0.0

和我的Apache 的httpd.conf是:

<VirtualHost *:80> 
    DocumentRoot "/var/www/example.com" 
    ServerName example.com 
    ServerAlias example.com 
    <Directory "/var/www/example.com"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 
<VirtualHost *:80> 
    DocumentRoot "/var/www/kitten.example.com" 
    ServerName kitten.example.com 
    ServerAlias kitten.example.com 
    <Directory "/var/www/kitten.example.com"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

让我怎么重定向所有这些wildecard子域到我的基地域名?

回答

0

您必须将DocumentRootDirectory映射到您的基本目录。

或者如果您还想更改域名,请为其编写一个.htaccess规则。

0

创建一个不指定ServerName或ServerAlias的虚拟主机指令。这将捕获该IP地址上的所有虚拟主机(您可以指定端口80上的所有IP),这些虚拟主机不映射到任何其他虚拟主机规范。

<VirtualHost *:80> 
     DocumentRoot /www/default 
     ... 
    </VirtualHost> 

http://httpd.apache.org/docs/2.2/vhosts/examples.html#default

但是,如果你要发送301 HTTP标头(永久重定向),你需要使用mod_rewrite或类似的东西:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

How to setup Apache mod_rewrite to redirect all but one subfolder是一个很好的例子..如果第一个选项不足以满足您的需求,则需要进行修改以满足您的需求。