regras mod_rewrite na configuração httpd

regras mod_rewrite na configuração httpd

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.conf
localizado 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.conf
arquivo 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.

informação relacionada