Apache RewriteEngine 配置目的

Apache RewriteEngine 配置目的

我在别人编写的 Apache 配置文件中遇到了这个代码片段,但我不确定它的用途。有人能解释一下这是干什么用的吗?

RewriteEngine On
RewriteCond %{THE_REQUEST} !HTTP/1\.1$
RewriteRule .* - [F]

答案1

这些指令拒绝(403 Forbidden)任何非 HTTP/1.1 的请求。许多机器人使用 HTTP/1.0 请求标头进行爬取 - 因此这些请求将被阻止。所有现代浏览器都将使用 HTTP/1.1(至少)。然而,由于 HTTP/2.0 已经出现,这些指令可以说已经过时,不应再使用。

服务器THE_REQUEST变量包含以下形式的初始请求标头:

GET /foo HTTP/1.1

如果您只想阻止 HTTP/1.0,那么您可以使用以下命令:

RewriteEngine On
RewriteCond %{THE_REQUEST} HTTP/1\.0$
RewriteRule ^ - [F]

相关内容