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

Apache 使用虚拟主机的通配符子域,apache,subdomain,config,virtualhost,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 Ser

有人能告诉我这到底是怎么回事吗。这是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> 

DocumentRoot“somepath”
ServerAlias mobile.mysite.com
ServerName mobile.mysite.com
DocumentRoot“somepath”
ServerAlias*.mysite.com
服务器名mysite.com

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

没有,此代码不执行上述任何任务。为此,您必须使用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.
开头,则在主机名中包含
www.
,并重定向

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


阅读有关重写规则的更多信息

谢谢。问题是我想把我所有的子域指向mysite.com,除了移动站点。那我该怎么做呢?