Рекомендация от проекта Apache является:
Как правило, файлы .htaccess следует использовать только в том случае, если у вас нет доступа к главному файлу конфигурации сервера. ... распространенным заблуждением является то, что директивы аутентификации пользователя и mod_rewrite должны идти в .htaccess
файлах.
Поэтому, пожалуйста, установите AllowOverride None
и все остальные ваши директивы в основном httpd.conf (и / или в ваших подразделах Include
)
Когда Apache не настроен с AllowOverride None
вами уже происходит (незначительное) снижение производительности, независимо от того, используются ли .htaccess
файлы или нет .
Это связано с тем, что для каждого запроса apache необходимо будет проверять наличие потенциального .htaccess
файла в каждом (под) каталоге, ведущем к запрашиваемому ресурсу. Например, когда файл запрашивается из каталога / www / htdocs / example, apache должен искать следующие файлы:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
И так, для каждого доступа к файлу из этого каталога, есть 4 дополнительных доступа к файловой системе, даже если ни один из этих файлов отсутствует. (Если AllowOveride установлен для /)
Системный вызов, используемый для этого ( man 2 stat
), сам по себе не так уж и дорог, и обычно кеш файловой системы используется вместо опроса реального диска, ограничивая фактические требования к вводу-выводу, но все же он может складываться, как утверждается в этой статье .
Когда один или несколько фактических .htaccess
файлов фактически присутствуют, apache все еще должен open
и прочитать его (вызывая другую операцию чтения ввода-вывода и обычно также операцию записи ввода-вывода для обновления atime
атрибута файловой системы ) и проанализировать его, прежде чем можно будет применить логику в нем.
В отличие от того, когда ваши директивы находятся в главном httpd.conf
, который требует только apache для их анализа один раз, при запуске каждый .htaccess
файл должен интерпретироваться снова для каждого запроса.
Насколько дорог, в дополнение к операциям ввода-вывода, анализ файлов .htaccess зависит от их сложности.
Это займет тщательный сравнительный анализ, чтобы определить.