優化.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) 每秒處理大約 100 個請求,而其下面的其他兩個重寫規則每小時僅處理幾個請求。

我的問題是,由於第一個重寫規則 (bigbadbot) 處理大約 99% 的流量,因此將這些規則放入兩個單獨的規則集中是否會更好?

例如:

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

它基本上應該沒有性能差異,因為一旦一個 Cond 在 OR 區塊中匹配,其餘的就不會被處理(沒有意義)。從技術上講,首先要根據 OR 區塊完成一些處理,因此我認為將其分解會更加有效。

如果您遇到效能問題,我會將精力集中在其他地方。也許可以分析您正在服務的任何應用程式。此外,如果它是託管的,則主機可能在同一伺服器上有太多網站。

相關內容