Назад | Перейти на главную страницу

Имеет ли значение размер файла .htaccess?

Я хочу знать, имеет ли размер файла .htaccess иметь значение? Я где-то читал, что большой .htaccess файл может замедлить работу сайта.

Мой .htaccess размер файла 51KB и он содержит около 500 lines которые в основном RewriteCond %{HTTP_REFERER} правила для блокировки сайтов, ссылающихся на спам.

Но я не заметил задержек загрузки сайта или проблем с производительностью.

Если я конвертирую те 500 RewriteCond %{HTTP_REFERER} на 20 строк, каждая из которых содержит 25 доменных имен рефереров спама в группах, использующих () и | символы, это что-нибудь изменит?

Например, преобразовать следующие строки:

RewriteCond %{HTTP_REFERER} hol\.es [NC,OR]
RewriteCond %{HTTP_REFERER} hys\.cz [NC,OR]
RewriteCond %{HTTP_REFERER} zzz\.com\.ua [NC,OR]
RewriteCond %{HTTP_REFERER} hypersito\.com [NC,OR]
RewriteCond %{HTTP_REFERER} tode\.cz [NC,OR]
RewriteCond %{HTTP_REFERER} mzf\.cz [NC,OR]

в следующие:

RewriteCond %{HTTP_REFERER} (hol\.es|hys\.cz|zzz\.com\.ua|hypersito\.com|tode\.cz|mzf\.cz) [NC,OR]

Уменьшит ли это загрузку ЦП и вызовет меньше циклов ЦП? Или он останется таким же, как 500 отдельных строк?

При таком большом количестве правил вам действительно стоит совет из документации Apache к сердцу

Вам следует избегать использования .htaccess файлы полностью, если у вас есть доступ к файлу конфигурации главного сервера httpd. С помощью .htaccess files замедляет работу вашего HTTP-сервера Apache. Любая директива, которую вы можете включить в .htaccess файл лучше установить в блоке каталога, так как он будет иметь тот же эффект с лучшей производительностью.

.htaccess файлы имеют два основных фактора, влияющих на производительность:

  • Дерево каталогов необходимо просканировать на их наличие. Просто их отключение позволяет избежать этих накладных расходов.
  • Каждое правило в .htaccess файл должен оцениваться для каждого отдельного запроса, в то время как включение этих правил в обычный файл конфигурации означает, что они оцениваются один раз при запуске Apache (или перезагрузке).

Итак, вам будет гораздо лучше поместить эти правила в свой основной файл конфигурации.

Но я не заметил задержек загрузки веб-сайтов или проблем с производительностью.

Конечно, эти соображения производительности актуальны только в том случае, если вы получаете более высокую рабочую нагрузку. Для простаивающего сервера это не очень актуально, но если нагрузка станет высокой, это начнет оказывать реальное влияние.