如果你有一个运行在somewhere.net的Apache的Apache,并且你也有一些虚拟主机( a.somewhere.net , b.somewhere.net ),你可以在虚拟主机上访问主分支上的目录。
例如,假设我安装了phpmyadmin 。 我可以访问它,包括apache.conf文件后,通过去somewhere.net/phpmyadmin 。 不过,我也可以通过访问a.somewhere.net/phpmyadmin或b.somewhere.net/phpmyadmin来访问它。 我认为这与Alias /phpmyadmin /usr/share/phpmyadmin (在phpmyadmin的apache.conf )这一行有关,它适用于Apache上的所有虚拟主机。
有没有办法使它只适用于默认网站,并没有任何子域? 我能做到这一点a.something.net/phpmyadmin不会findphpmyadmin ?
将Alias指令(可能还有生成的configuration的其他部分?)或将引入phpmyadminconfiguration的Include到您希望应用的特定<VirtualHost>块中 – 这将导致它们仅应用于那些特定的虚拟主机而不是整个服务器。
从conf中删除别名。
ln -s /usr/share/phpmyadmin /$vHostDocRoot/phpmyadmin
这是最简单的方法….另外,您可以尝试将Alias指令移到虚拟主机configuration中。