Como mover regras de .htaccess para o arquivo de configuração do servidor principal httpd?

1

Eu tenho aprox. 500 RewriteCond %{HTTP_REFERER} de regras no meu arquivo .htaccess para bloquear sites referenciadores de spam.

A linha de regras é a seguinte:

RewriteCond %{HTTP_REFERER} hol\.es [NC,OR]
RewriteCond %{HTTP_REFERER} hys\.cz [NC,OR]
RewriteCond %{HTTP_REFERER} zzz\.com\.ua [NC,OR]
RewriteCond %{HTTP_REFERER} hypersito\.com [NC,OR]
RewriteCond %{HTTP_REFERER} tode\.cz [NC,OR]
and many more similar lines

Agora, devido a problemas de desempenho, fui aconselhado a mover essas regras para o arquivo de configuração do servidor principal httpd.

Eu não sou um especialista nesta área, então alguém pode me orientar como fazer isso?

Eu tenho acesso ao WHM e ao shell, ambos.

Pesquisei na net e descobri que o arquivo reside no diretório /etc/httpd/conf . Quando abri o arquivo httpd.conf , ele continha mais de 300 linhas.

Onde devo adicionar essas regras RewriteCond %{HTTP_REFERER} no arquivo httpd.conf e como?

    
por TSA 09.09.2017 / 12:20

1 resposta

1

mod_rewrite se comporta de maneira um pouco diferente quando usado diretamente na configuração do servidor (ou host virtual), ao contrário do contexto .htaccess (ou diretório ).

No entanto, essas diretivas específicas devem funcionar inalteradas na configuração do servidor.

Na verdade, não importa onde na configuração do servidor essas diretivas vão, desde que você não as coloque dentro de outro grupo de diretivas. Procure por uma lacuna lógica nas diretivas. As diretivas de bloqueio devem ir o mais cedo possível após a configuração principal do servidor. (No entanto, como dito, a ordem não é necessariamente importante, já que os módulos do Apache são executados independentemente e em uma ordem predefinida de qualquer maneira.)

No entanto, em vez de colocar essas diretivas diretamente no arquivo de configuração principal, criaria um arquivo de configuração separado apenas para essas diretivas (por exemplo, block-referer.conf ) e incluiria esse arquivo na configuração principal usando uma diretiva Include . Por exemplo:

Include /usr/local/apache2/conf/block-referer.conf

Referência:
link

UPDATE: Visto que você parece estar usando o cPanel, pode ser preferível adicionar essas diretivas a um arquivo de inclusão existente, pois, como o aviso em httpd.conf declara:

Direct modifications to the Apache configuration file may be lost upon subsequent regeneration of the configuration file.
:
It is also possible to add custom directives to the various "Include" files loaded by this httpd.conf

Veja os dois arquivos de inclusão a seguir:

Include "/usr/local/apache/conf/includes/pre_virtualhost_global.conf"
Include "/usr/local/apache/conf/includes/pre_virtualhost_2.conf"
    
por 09.09.2017 / 16:52