更新 1:
我现在有以下内容:
<VirtualHost *:80>
ServerName www.companyname.com
DocumentRoot /www/html/www.companyname.com/
</VirtualHost>
<VirtualHost *:80>
ServerName test.companyname.com
DocumentRoot /www/html/www.companyname.com/test/
</VirtualHost>
当我在浏览器中输入时,它不起作用
http://test.companyname.com
但是,当我重新启动 apache 时,我收到一条消息说
Stopping httpd: [ OK ]
Starting httpd: [Tue Apr 05 10:49:48 2011] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[ OK ]
原始问题:
我该如何配置 apache 以便我可以拥有主域名和多个子域名?
例如,谷歌
www.google.com mail.google.com docs.google.com
我该如何做同样的事情,但让子域名转到网站上的不同目录和/或网页?
我们在 RedHat Linux 上使用 LAMP 配置。
答案1
设置多个s ,每个 sVirtualHost
都有不同的ServerName
and 。DocumentRoot
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/www.example.com/
# ... other directives ...
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.example.com
DocumentRoot /var/www/subdomain.example.com/
# ... other directives ...
<VirtualHost>
我鼓励你看一下你现有的配置文件(/etc/httpd/
我相信在 RedHat 下),也看看Apache 的文档。
答案2
如果有人输入http://sub1.example.com那么它将指向http://example.com/sub1/。
解决方案:
RewriteCond %{HTTP_HOST} !^(www|ftp|mail).example.com
RewriteCond %{HTTP_HOST} ^([^.]+).example.com
RewriteRule (.*) /subd_%1/$1 [L]
检查您的.htaccess 文件。
你的问题并不糟糕,只是需要知道你用什么来服务。