开发者社区> 问答> 正文

apache拦截三级域名? 400 报错

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 指向到特定程序目录,而二级域名和顶级域名指向另一个目录,但是这样配置后,三级域名无法拦截到,所有请求都通向了第二个配置,求指点

展开
收起
爱吃鱼的程序员 2020-05-30 21:31:13 609 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    是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 那里去了
    2020-05-30 21:31:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像