
Как и где мне разместить правила 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.