.htaccess ファイルを最適化する

.htaccess ファイルを最適化する

パフォーマンスの問題を回避するために、.htaccess ファイルを最適化しようとしています。

私の .htaccess ファイルには次のような内容があります:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} bigbadbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} otherbot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} otherbot2 [NC]
RewriteRule ^.* - [F,L]

最初の書き換えルール (bigbadbot) は 1 秒あたり約 100 件のリクエストを処理しますが、その下の他の 2 つの書き換えルールは 1 時間あたり数件のリクエストしか処理しません。

私の質問は、最初の書き換えルール (bigbadbot) がトラフィックの約 99% を処理するので、これらのルールを 2 つの別々のルールセットに配置したほうがよいかどうかです。

例えば:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} bigbadbot [NC]
RewriteRule ^.* - [F,L]

RewriteCond %{HTTP_USER_AGENT} otherbot1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} otherbot2 [NC] RewriteRule ^.* - [F,L]

パフォーマンスの面では何が優れているでしょうか? これをベンチマークした人はいますか?

答え1

OR ブロックで 1 つの Cond が一致すると、残りは処理されないため (意味がありません)、基本的にパフォーマンスの違いはありません。技術的には、そもそも OR ブロックのために少し処理が行われるので、それを分離すると少しだけ効率的になると思います。

パフォーマンスの問題がある場合は、他のことに集中して取り組むことをお勧めします。おそらく、提供しているアプリケーションのプロファイリングです。また、ホストされている場合は、ホストが同じサーバー上に Web サイトを多数持っているだけかもしれません。

関連情報