当其他“子域”存在时,重写subdomain.domain.com

我的httpd.conf如下所示:

NameVirtualHost 12.34.56.78:80 <VirtualHost 12.34.56.78:80> DocumentRoot /var/www/html/site ServerName www.example.com <IfModule mod_rewrite.c> RewriteEngine On ... </IfModule> </VirtualHost> <VirtualHost 12.34.56.78:80> ServerName blog.example.com DocumentRoot /var/www/html/blog </VirtualHost> Listen *:2194 <VirtualHost *:2194> Redirect / http://mgr.example.com/ </VirtualHost> 

我想能够启用“类别”作为子域名,即如果用户访问:

 science.example.com 

它应该向他显示URL本身,但向他展示www.example.com/science.php的内容

它不一定是一个通用的/通配符的方法 – 这些类别将是一个我可以单独指定的小数字。 我只是不想要添加任何干扰网站的现有function。

我怎样才能做到这一点?

加:

ServerAlias *.example.com

到虚拟主机,并采用这些重写规则:

 Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} !^(www)\. [NC] RewriteCond %{HTTP_HOST} ^(.*)\.example\.com [NC] RewriteRule (.*) http://www.example.com/%1 [R=301,L] 

如果你已经有一个子域名,例如。 subsub.example.com ,显式设置为另一个虚拟主机的ServerName / ServerAlias,它将优先于wildxard虚拟主机