adicionando regras de reescrita no .htaccess

4

Eu estava lendo esta resposta e tentei usar o guia para ocultar a página de login . Sugiro editar o arquivo .htaccess do meu site para algo assim:

RewriteEngine On
RewriteBase / 
##### ABOVE THIS POINT IS ALREADY INSERTED BY WORD PRESS
##### Michi’s code is BELOW #####
RewriteCond %{REQUEST_URI} wp-admin/
RewriteCond %{QUERY_STRING} !YOURSECRETWORDHERE
RewriteRule .*\.php [F,L]
RewriteCond %{QUERY_STRING} !YOURSECRETWORDHERE
RewriteRule ^ADMINFOLDER/(.*) wp-admin/$1?%{QUERY_STRING}&YOURSECRETWORDHERE [L]
##### Michi’s code is ABOVE #####
##### BELOW THIS POINT IS ALREADY INSERTED BY WORD PRESS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Meu arquivo .htaccess começa com estas linhas:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Eu quero saber se adicionar algo entre # BEGIN WordPress e # END WordPress é possível que seja substituído pelo wordpress ou não? Isso é comum em scripts automatizados, mas como não são mencionados avisos, quero saber se é seguro adicionar algumas regras dentro deste bloco.

    
por VSB 15.03.2018 / 21:47

4 respostas

5

O Wordpress usa esses marcadores para colocar suas regras entre eles. Eu nunca coloquei e nunca coloquei regras personalizadas lá.

Confira insert_with_markers() e save_mod_rewrite_rules() em wp-admin/includes/misc.php

Mais notavelmente este bloco de comentários que responde à sua pergunta:

/**
 * Inserts an array of strings into a file (.htaccess ), placing it between
 * BEGIN and END markers.
 *
 * Replaces existing marked info. Retains surrounding
 * data. Creates file if none exists.
 */
    
por David Sword 15.03.2018 / 22:41
1

Além de: o código de Michi não está correto, e talvez não seja tão seguro quanto você imagina ...

##### Michi’s code is BELOW #####
RewriteCond %{REQUEST_URI} wp-admin/
RewriteCond %{QUERY_STRING} !YOURSECRETWORDHERE
RewriteRule .*\.php [F,L]
RewriteCond %{QUERY_STRING} !YOURSECRETWORDHERE
RewriteRule ^ADMINFOLDER/(.*) wp-admin/$1?%{QUERY_STRING}&YOURSECRETWORDHERE [L]
##### Michi’s code is ABOVE #####

O primeiro RewriteRule está sem um argumento substituição . Isso fará com que a solicitação seja (incorretamente) reescrita em /[F,L] , o que resultará em um 404. Ok, então o acesso é essencialmente bloqueado, mas a intenção é servir 403 Forbidden (que é o que o F flag é para). Então, o seguinte:

RewriteRule .*\.php [F,L]

Deve ser reescrito como:

RewriteRule \.php$ - [F]

Observe o uso do hífen ( - ) para o segundo argumento. Isso parece uma omissão acidental no código original. Além disso, não há necessidade do sinal L quando o sinalizador F é usado.

RewriteCond %{QUERY_STRING} !YOURSECRETWORDHERE
RewriteRule ^ADMINFOLDER/(.*) wp-admin/$1?%{QUERY_STRING}&YOURSECRETWORDHERE [L]

Esta segunda regra permite-lhe obter acesso se souber o ADMINFOLDER . O YOURSECRETWORDHERE é essencialmente ignorado (e não é requerido pelo usuário final) !? Então, o ADMINFOLDER é realmente o "segredo" que deve ser longo e enigmático. (TBH, não há necessidade de 2 "segredos" aqui, quando eu vou fazer.)

Quaisquer diretivas de bloqueio como essa devem ser antes do front-controller do WordPress. (Embora se você estiver apenas bloqueando arquivos físicos, isso não é estritamente importante para que seja funcional, já que o controlador frontal do WP só roteia caminhos de URL que não mapeiam para arquivos físicos / diretórios.)

    
por MrWhite 17.03.2018 / 03:05
0
  

Isso é comum em scripts automatizados

Exatamente. Quando o wordpress precisar regenerar a regra htaccess, ele lerá o arquivo atual e substituirá a seção "wordpress". Se você precisa de regras para estar nessa seção, você pode escrever um plugin para sobrescrever / alterar as regras que estão sendo geradas.

Notas de rodapé: a obscuridade não é segurança, a força bruta não é como os sites estão sendo hackeados, e você precisará desabilitar o xml-rpc, e talvez mais tarde o resto-api também.

    
por Mark Kaplun 15.03.2018 / 22:43
-3

Não, não deve interferir, eu tenho regras dentro desse bloco e elas ainda estão ativas, mesmo depois de mudar a estrutura do permalink. Espero que isto ajude.

    
por Oliver Leach 15.03.2018 / 21:50