apache拦截三级域名? 400 报错
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/miniwebsites/ ServerName *.m.aaa.cn ErrorLog logs/error_log CustomLog logs/access_log common </VirtualHost>
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/bbb/ ServerName aaa.cn ServerAlias *.aaa.cn ErrorLog logs/error_log CustomLog logs/access_log common </VirtualHost>
如上,我想实现apache匹配到*.m.aaa.cn 指向到特定程序目录,而二级域名和顶级域名指向另一个目录,但是这样配置后,三级域名无法拦截到,所有请求都通向了第二个配置,求指点
是apache 2.2么?apache 2.2的话,想要支持基于域名的虚拟主机,需要加上NameVirtualHost *:80指令,apache 2.4废弃了这个指令,直接可以支持基于域名的虚拟主机
而且复制了你的配置,发现服务启动直接报错,语法格式都不对,ServerName是不能有通配符的,但是ServerAlias可以,你的配置第四行需要改一下
######回复 @Feng_Yu : 还真没报错,也没警告,很是奇妙。。。######回复 @findever : 我这边ServerName有通配符启动apache直接报错,你那边不报错吗?至少在日志应该会有警告吧。ServerName指令不支持通配符,想统配多主机用ServerAlias,这个支持通配符######回复 @Feng_Yu : 终于解决了,servername去掉通配符就ok了,thanks######回复 @findever : 看看服务启动的日志,有没有报错或者警告。我这边是ubuntu server 14.04的,apache是2.4版本,复制你的配置,改一下ServerName的通配符配置,是可以使用的,没有任何问题。######是2.2的,NameVirtualHost *:80已经加过了,域名是可以正常解析的,现在的问题是我配置的第一部分,即三级域名不能拦截到,所有三级域名的访问都跑到二级域名配置 *.aaa.cn 那里去了版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。