【发布时间】:2014-11-22 00:39:27
【问题描述】:
我正在尝试捕获启用站点的配置文件未捕获的所有流量,而不是抛出默认的 404,而是抛出带有空白响应的 200。
因此,例如,如果我的网站是https://www.example.com@x.x.x.x 并且有人将https://www.bad.com 映射到我的x.x.x.x ip,他们只会得到一个 200 的空白内容。
为此,我有一个位于/var/www/index.html 的文件,它是一个空白文件,并在{nginxdir}/conf.d/200catchall.conf 中设置了以下规则,该规则被导入到标准 {nginxdir}/nginx.conf 文件中:
# Serve blank page to any requests not intended for one of our servers
server {
listen 443;
server_name _;
location / {
root /var/www
}
}
这非常适合为https://www.bad.com 的请求呈现 200 空白屏幕。但是,当请求 https://www.bad.com/cgibin/nofile.php 之类的内容时,它会尝试遍历目录,并最终向 error.log 抛出错误并最终导致 404。
我还尝试将root 指令替换为try_files /var/www/index.html 指令,这似乎给出了相同的结果...
我已经为此烦恼了一段时间 - 有什么建议吗?
【问题讨论】:
标签: nginx