mod_rewrite regras na configuração do httpd

2

Como e onde eu 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 no meu diretório da web é lido.

Informação adicional:

  • assumindo que todos os scripts funcionem no arquivo .htaccess
  • RHEL4 executando o Apache 2.0.52
  • vários sub / domínios na máquina

Obrigado

    
por wag2639 28.01.2010 / 01:07

4 respostas

2

Não tenho certeza de ter entendido a pergunta, mas se a pergunta for "Atualmente tenho que reescrever regra em um arquivo .htaccess e quero colocá-los em toda a configuração do apache." você tem que adicionar uma diretiva <Directory /path/to/directory/where/htaccess/is> na configuração do apache e colocar o conteúdo do arquivo .htaccess nela.

Se o .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>
    
por 28.01.2010 / 01:29
1

As respostas estão todas aqui - elas não estão todas juntas.

Como memnoch_proxy declara:

"Regras modificadas em arquivos .htaccess são lidas em todos os pedidos. /etc/httpd/httpd.conf e /etc/httpd/conf.d/* não são. Eu disparo novas mudanças para esses arquivos usando o serviço httpd reload que envia um SIGUSR1 para trabalhadores para reiniciar normalmente. "

Então, parece-me que você está usando arquivos .htaccess para definir suas regras de re-gravação que se aplicam ao seu site e / ou estrutura de pastas.

Para evitar que as regras sejam relidas e reinterpretadas toda vez que o diretório ou a página é acessada, as regras precisam ser colocadas dentro dos arquivos centrais de configuração do Apache para o seu site.

A localização dessas regras varia dependendo de como o administrador do sistema definiu 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 compilação padrão do Apache, você pode ter que colocá-los no final do

Arquivo
httpd.conf
localizado em
/usr/local/apache/conf
    
por 09.02.2010 / 13:09
0

No seu arquivo httpd.conf, adicione algo como "include modrewrite.conf". Em seguida, no arquivo moderewrite.conf, adicione as regras de reconfiguração.

Também certifique-se de incluir o módulo mod_rewrite se não estiver compilado.

    
por 28.01.2010 / 01:29
0

RewriteRules são processados sempre que um recurso em seu servidor é acessado e que as regras se relacionam. Independentemente de onde as regras são colocadas, elas serão analisadas a cada vez.

No entanto, se você quer dizer que você não gosta da sobrecarga do .htaccess sendo lido do disco em cada requisição de recurso, então a resposta do radius é o que você quer, com a instrução óbvia adicional de remover o arquivo .htaccess depois colocando seu conteúdo no arquivo principal de configuração do apache.

    
por 29.01.2010 / 04:12