
Como e onde coloco minhas regras mod_rewrite na configuração do httpd para que elas sejam analisadas apenas uma vez na inicialização, em vez de cada vez que um arquivo em meu diretório da web for lido.
Informação adicional:
- assumindo que todos os scripts funcionam no arquivo .htaccess
- RHEL4 executando Apache 2.0.52
- vários sub/domínios na máquina
Obrigado
Responder1
Não tenho certeza se entendi a pergunta, mas se a pergunta for "Atualmente tenho regras de reescrita em um arquivo .htaccess e quero colocá-las em toda a configuração do Apache". você precisa adicionar uma <Directory /path/to/directory/where/htaccess/is>
diretiva na configuração do Apache e colocar o conteúdo do arquivo .htaccess nela.
Se .htaccess estiver em /srv/web/site1/folder1/ adicione o seguinte no arquivo de configuração do Apache
<Directory /srv/web/site1/folder1>
Paste content of .htaccess here
</Directory>
Responder2
As respostas estão todas aqui - elas simplesmente não estão todas agrupadas.
Como afirma memnoch_proxy:
"As regras modificadas nos arquivos .htaccess são lidas em cada solicitação. /etc/httpd/httpd.conf e /etc/httpd/conf.d/* não são. Eu aciono novas alterações nesses arquivos usando o serviço httpd reload que envia um SIGUSR1 para os trabalhadores reiniciarem normalmente."
Parece-me que você está usando arquivos .htaccess para definir suas regras de reescrita que se aplicam ao seu site e/ou estrutura de pastas.
Para evitar que as regras sejam relidas e reinterpretadas sempre que o diretório ou página for acessado, as regras precisam ser colocadas nos arquivos de configuração centrais do Apache para o seu site.
A localização dessas regras varia dependendo de como o administrador do sistema organizou o sistema; em um ambiente Red Hat Enterprise Linux eu recomendo que você os coloque em um arquivo chamado
rewrite-rules.conflocalizado em
/etc/httpd/conf.d
Em um sistema com uma versão padrão do Apache você pode ter que colocá-los no final do
httpd.confarquivo localizado em
/usr/local/apache/conf
Responder3
No seu arquivo httpd.conf, adicione algo como "include modrewrite.conf". Em seguida, no arquivo moderewrite.conf, adicione as regras de reescrita.
Certifique-se também de incluir o módulo mod_rewrite se não estiver compilado.
Responder4
RewriteRules são processados sempre que um recurso em seu servidor ao qual as regras estão relacionadas é acessado. Independentemente de onde as regras sejam colocadas, elas serão sempre analisadas.
No entanto, se você quer dizer que não gosta da sobrecarga do .htaccess sendo lido do disco em cada solicitação de recurso, então a resposta do radius é o que você deseja, com a instrução adicional óbvia de remover o arquivo .htaccess após colocar seu conteúdo no arquivo de configuração principal do apache.