правила mod_rewrite в конфигурации httpd

правила mod_rewrite в конфигурации httpd

Как и где мне разместить правила mod_rewrite в конфигурации httpd, чтобы они анализировались только один раз при запуске, а не каждый раз при чтении файла в моем веб-каталоге.

Дополнительная информация:

  • предполагая, что все скрипты работают в файле .htaccess
  • RHEL4 с Apache 2.0.52
  • несколько поддоменов/доменов на машине

Спасибо

решение1

Я не уверен, что понял вопрос, но если вопрос звучит так: «У меня в настоящее время есть правило перезаписи в файле .htaccess, и я хочу поместить его во всю конфигурацию Apache», вам нужно добавить директиву <Directory /path/to/directory/where/htaccess/is>в конфигурацию Apache и поместить в нее содержимое файла .htaccess.

Если .htaccess находится в /srv/web/site1/folder1/, то добавьте следующее в файл конфигурации Apache

<Directory /srv/web/site1/folder1>
Paste content of .htaccess here
</Directory>

решение2

Все ответы здесь — просто они не все собраны вместе.

Как утверждает memnoch_proxy:

«Правила, измененные в файлах .htaccess, считываются при каждом запросе. /etc/httpd/httpd.conf и /etc/httpd/conf.d/* — нет. Я инициирую новые изменения в этих файлах с помощью сервиса httpd reload, который отправляет SIGUSR1 рабочим процессам для корректного перезапуска».

Мне кажется, что вы используете файлы .htaccess для определения правил перезаписи, которые применяются к вашему сайту и/или структуре папок.

Чтобы предотвратить повторное чтение и интерпретацию правил при каждом доступе к каталогу или странице, правила необходимо поместить в центральные файлы конфигурации Apache для вашего веб-сайта.

Расположение этих правил зависит от того, как системный администратор разместил систему; в среде Red Hat Enterprise Linux я бы рекомендовал вам поместить их в файл с именем

переписать-правила.conf
находится в
/etc/httpd/conf.d

В системе со сборкой Apache по умолчанию вам, возможно, придется поместить их в конец файла

httpd.conf
файл находится в
/usr/local/apache/conf

решение3

В файле httpd.conf добавьте что-то вроде "include modrewrite.conf". Затем в файле moderewrite.conf добавьте правила перезаписи.

Также убедитесь, что вы включили модуль mod_rewrite, если он не скомпилирован.

решение4

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

Однако если вы имеете в виду, что вам не нравятся накладные расходы на чтение файла .htaccess с диска при каждом запросе ресурсов, то ответ radius — это то, что вам нужно, с дополнительной очевидной инструкцией по удалению файла .htaccess после помещения его содержимого в основной файл конфигурации Apache.

Связанный контент