答案1
您的 Web 服务器将响应每个 http 请求,无论该请求是针对有效且现有的内容,还是针对无效且不存在的内容。这是不可避免的。...
一种方法是让您的日志更干净,并通过设置基于名称的虚拟主机来确保只有使用您网站名称的请求才会显示来自您网站的内容。
您可以通过设置至少两个 VirtualHost 条目来实现这一点,一个(或多个)用于您的实际网站,以及一个默认虚拟主机,它将响应所有不包含您网站名称的请求,例如对您的 IP 地址发出的请求
从https://httpd.apache.org/docs/2.4/vhosts/examples.html
<VirtualHost *:80>
ServerName default
DocumentRoot "/www/default"
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/example"
ServerName www.example.com
ServerAlias example.com
# Other directives here
</VirtualHost>
# additional VirtualHost blocks
然后,您可以在第一个虚拟主机声明中使用一些技巧来始终返回410 错误代码而不是(尝试提供)来自备用文档根目录的内容,方法是使用类似
<VirtualHost *:80>
ServerName default
# Don't log requests
CustomLog /dev/null common
ErrorLog /dev/null
# Forces the server to return a 410 Gone status on all requests
RewriteEngine On
RewriteRule .* - [G]
</VirtualHost>