重定向子域名栏

时间:2012-03-15 00:24:34

标签: apache amazon-ec2 dns subdomain

所以我设置了 Amazon EC2 并使用 123-reg 注册了一些域名,我已经设置了我的Apache VirtualHost但是现在我要去需要设置几个子域(例如 小猫 .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子域重定向到我的基域?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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是一个很好的例子..如果第一个选项不足以满足您的需求,需要进行修改以满足您的需求。