Apache-2.4

Apache RewriteEngine 配置目的

  • February 19, 2019

我在別人編寫的 Apache 配置文件中遇到了這個片段,但我不確定目的。誰能解釋這是乾什麼用的?

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

這些指令拒絕(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]

引用自:https://serverfault.com/questions/954773