所以我设置了 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子域重定向到我的基域?
答案 0 :(得分:0)
您必须将DocumentRoot
和Directory
映射到基本域目录。
或者如果您还想更改域名,请为其编写.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是一个很好的例子..如果第一个选项不足以满足您的需求,需要进行修改以满足您的需求。