使用虚拟主机的通配符子域

时间:2013-12-31 08:23:24

标签: apache subdomain config virtualhost

有人可以向我解释这实际上是如何运作的。这是Apache的httpd.conf文件中的代码。

<VirtualHost *:80>
DocumentRoot "somepath"
ServerAlias mobile.mysite.com
ServerName mobile.mysite.com 
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "somepath"
ServerAlias *.mysite.com
ServerName mysite.com 
</VirtualHost> 

我想做一些事情,比如它的mobile.mysite.com应该去mobile.mysite.com。如果它的其他任何其他.mysite.com,那么它应该去mysite.com。上面的代码是否执行相同的操作?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不,此代码不执行任何上述任务。你必须为此目的使用mod_rewrite。

修改httpd.conf文件以包含mod_rewrite.so,然后编写如下内容:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www [NC]
RewriteRule $ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R]

上述重写规则的作用是检查主机名是否以www开头,如果不是,则主机名中包含www.并重定向。

您可以编写与此类似的重写规则。

详细了解重写规则here