vhost 配置来控制访问

vhost 配置来控制访问

有效的链接:

http://me.em360send.com/login/forgotPassword

同一服务器(IP 地址)上的链接不起作用:

http://54.86.5.204/login/forgotPassword

根据访问日志,即使请求的是完全相同的页面,一个请求也成功,而另一个请求则失败。

me.em360send.com:80 120.60.198.212 - - [12/Sep/2014:10:25:14 +0000] "GET /login/forgotPassword HTTP/1.1" 200 1336 "-" "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"

120.60.198.212 - - [12/Sep/2014:10:25:32 +0000] "GET /login/forgotPassword HTTP/1.1" 404 509 "-" "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"

这意味着主机配置为接受来自特定域的请求。如何实现这一点?

答案1

到达 Apache 服务器的请求如果与实际定义的虚拟主机名不匹配,则将被映射到配置的第一个虚拟主机。如果此虚拟主机不包含文件/login/forgotPassword,则会导致错误。发往 IP 地址而非主机名的请求通常与虚拟主机定义不匹配,因此适用此规则。

第一个定义的 vhost 是解析配置文件时遇到的第一个 vhost。对于在includeed 配置文件中定义的 vhost,它将是文件名在字母表中排在第一位的那个,这就是为什么这些文件通常被编号为 的原因01-example.com.conf

就您而言,似乎您有一个优先级更高的虚拟主机,但该路径名无效。

你可以获取所有已定义虚拟主机和默认虚拟主机的列表

apachectl -S

链接到 apache 文档

相关内容