通过 apache 的子域名

通过 apache 的子域名

更新 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都有不同的ServerNameand 。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 文件。

你的问题并不糟糕,只是需要知道你用什么来服务。

相关内容