Posso renomear a pasta wp-admin?

68

É possível renomear a pasta wp-admin?

Eu sei que poderia apenas renomeá-lo, mas a menos que seja suportado pelo código, muitas coisas seriam quebradas.

Se eu usar um nome de pasta personalizado, ele ficará um pouco mais seguro, segurança por obscuridade e tudo mais.

    
por Adam Dempsey 11.08.2010 / 23:35
fonte

10 respostas

37

Infelizmente, não é possível nem parece haver vontade de considerá-lo como uma modificação, como você pode ver por este discussão recente na lista de wp-hackers e este ticket no trac .

Se você realmente quiser ver isso ser revisitado, sugiro:

  1. Apresente seu caso em wp-hackers mas esteja avisado para que seu caso de uso seja melhor bom e não "segurança através da obscuridade" ou será derrubado como acima.

  2. Apresente seu argumento em um bilhete do trac com as mesmas advertências.

  3. Melhor ainda, envie um patch para o trac que permite sua funcionalidade desejada. É muito mais difícil dizer não quando o trabalho já foi feito (mas é claro, eles têm uma preferência por dizer "não" com muito mais frequência do que dizem "sim", por isso, esteja avisado.)

por MikeSchinkel 12.08.2010 / 00:19
fonte
11

As pessoas continuam fazendo esta pergunta, mas as pessoas continuam marcando como uma duplicata. A resposta escolhida para isso, no entanto, não é uma resposta para a pergunta.

Para renomear o admin do wordpress, você precisa dar dois passos.

No código a seguir estou usando o painel como o nome do meu novo wp-admin. Altere o painel no código abaixo para o que você quiser nomear seu novo administrador.

Primeiro, você precisa informar ao wordpress se deseja alterar o URL de administrador.

Na linha 2558 wp-includes / link-template.php é o código que determina o URL de administrador.

Usando o filtro admin_url , você pode alterar com sucesso a URL do administrador com a seguinte função:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Você pode testar para ver o que seu novo URL está fazendo:

function whats_my_admin_url() {
    $url = admin_url();
    echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
    }
add_action( 'admin_notices', 'whats_my_admin_url' );

No entanto, se você perceber que, ao clicar no admin, nem tudo funciona e alguns dos links podem lhe dar 404 não encontrados ou algo similar.

Em segundo lugar, altere o .htaccess no diretório raiz do wordpress e adicione o seguinte no início antes de qualquer outra coisa.

#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

Agora, não sou especialista quando se trata de editar o .htaccess, de modo que parte disso pode não ser necessária. No entanto, nunca achei que não funcionasse.

Aqui está a coisa toda. Crie um arquivo e solte em sua pasta de plugins ou pasta mu-plugins. (lembre-se de alterar todas as instâncias do painel para o seu URL de administrador preferido)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Problemas?

Eu não tive nenhum em mais de um ano usando este método. Você pode notar que o wp-admin ainda funcionará que tipo de droga, mas é mais uma precaução do que qualquer coisa. Eu tinha alguns plugins mal escritos que codificavam o wp-admin em alguns lugares que não carregavam ao tentar bloquear ou redirecionar o wp-admin. Tenho certeza de que há uma maneira de fazer isso com o htaccess, mas não consegui descobrir. Além disso, isso não foi testado em multisite ou algo assim nunca.

Atualização: abordagem alternativa

Isso é bem parecido, mas por alguma razão minha resposta acima não funcionou em todos os hosts que tentei.

Adicionar a .htaccess

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

Crie um arquivo na pasta mu-plugins chamado new-admin.php e adicione isto aí:

<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

add_filter('site_url',  'wpadmin_filter', 10, 3);
 function wpadmin_filter( $url, $path, $orig_scheme ) {
  $old  = array( "/(wp-admin)/");
  $admin_dir = WP_ADMIN_DIR;
  $new  = array($admin_dir);
  return preg_replace( $old, $new, $url, 1);
}

Observação: Essa abordagem pareceu funcionar melhor em alguns hosts, mas ainda tinha o problema de não redirecionar os links do wp-admin para o novo URL de administrador. Aqui está uma abordagem que tentei abaixo. Embora este abaixo não funcione , acho que está no caminho certo. Não tenho certeza de qual gancho usar. O htaccess pode ser uma alternativa melhor, mas continuei recebendo loops de redirecionamento quando tentei dessa forma.

add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
  $redirect_to = $_SERVER['REQUEST_URI'];
  if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
    $redirect_to = $_REQUEST['redirect_to'];
    $check_wp_admin = stristr($redirect_to, 'wp-admin');
    if($check_wp_admin){
      wp_safe_redirect( '404.php' );
    }
  }
}
    
por Bryan Willis 07.06.2014 / 15:56
fonte
10

Não, você não pode renomear a pasta. O caminho é codificado em vários locais na fonte do WordPress.

A segurança através da obscuridade não é realmente segurança, de qualquer forma.

    
por Viper007Bond 11.08.2010 / 23:40
fonte
9

Uma abordagem oficialmente suportada pelo WordPress é mover os arquivos de instalação do WordPress para um subdiretório, mantendo o site na raiz, assim:

URL do site: http://my-blog.com

URL do administrador: http://my-blog.com/7nxnkkugrdzm/wp-admin

Embora isso não lhe dê total liberdade para alterar seu URL de administrador, isso significa que você pode prefixar com o que quiser. Isso é tão bom do ponto de vista da segurança. Ele também tem o benefício de mover todos os arquivos de instalação do WordPress para um local desconhecido para os usuários, portanto, ele deve fazer parte de qualquer estratégia de proteção do wordpress.

A partir do WordPress Codex: Dando ao WordPress seu próprio diretório

Além disso, observe que, embora esse esquema de segurança seja chamado URL Obscuro , não é a mesma coisa que segurança por obscuridade . URL Obscuro é um esquema de segurança perfeitamente válido que é tão bom quanto uma senha, enquanto segurança por obscuridade depende do uso de procedimentos não comprovados.

As mesmas advertências se aplicam às senhas: Chame a pasta personalizada como 7nxnkkugrdzm , não happy-snappy-admin . Além disso, verifique se os usuários sabem que o URL de administrador é um segredo.

    
por cmc 13.03.2013 / 15:47
fonte
7

Na verdade, há um tutorial muito bom sobre isso aqui:

  

Como ocultar informações do WordPress do seu código fonte espelho

     

Inclui como renomear o conteúdo do wp, renomear o wp-admin e remover a tag do gerador do WordPress.

     

Este tutorial irá alterar a evidência óbvia ou as indicações dela no seu código-fonte, removendo efetivamente as informações do WordPress do seu site .

Ele explica como alterar o nome da pasta, o URL de login do wp-admin e garantir que login.php redirecione para o site principal para que as pessoas possam ir diretamente para lá.

    
por Graeme 09.01.2011 / 19:09
fonte
6

Se você deseja impedir que os usuários em nível de assinante vejam o diretório wp-admin, você poderá criar versões autônomas das páginas de login / registro e de perfil / edição em seus próprios diretórios. Em seguida, você pode proteger sua pasta administrativa por meio de htaccess ou restrição de IP. (Embora se você fizer isso, você deve abrir uma exceção para o arquivo admin-ajax, já que alguns plugins o usam para adicionar, um, funcionalidade AJAX).

Essa abordagem oferece a "obscuridade" que você deseja (o que não faz muito, mas geralmente faz com que os clientes e gerentes se sintam melhor) e também acrescenta alguma segurança real ao limitar o acesso ao administrador. Além disso, honestamente, uma URL que apenas diz "/ login" parece muito mais legal que "wp-login.php".

Não é preciso dizer que isso não torna seu site à prova de balas. Mas é um ótimo aprimoramento básico.

    
por MathSmath 15.11.2010 / 08:11
fonte
2

Uma maneira de bloquear o painel de controle administrativo é utilizar as regras do .htaccess. Basta adicionar um arquivo .htaccess à raiz do diretório wp-admin. Depois de adicionar esse arquivo, basta adicionar a seguinte regra para negar todos os endereços IP e permitir apenas o seu IP:

enlace

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>
    
por Josh 07.12.2011 / 15:10
fonte
1

Se você quiser renomear o wp-admin com o objetivo de adicionar camada adicional de segurança à sua instalação do WordPress, você também pode tentar o Roots / Bedrock WordPress Boilerplate . Isso pode ajudar a isolar a raiz da Web para limitar o acesso a arquivos que não são da web. Ele também pode ajudar a organizar / proteger todo o núcleo do WordPress, colocando-o em seu próprio subdiretório, como renomear o wp-content / to app / bem como esses recursos adicionais:

  • Gerenciamento de dependência com o Composer
  • Configuração fácil do WordPress com arquivos específicos do ambiente
  • Variáveis de ambiente com Dotenv
  • Autoloader para mu-plugins (use plugins comuns como mu-plugins)
  • Segurança aprimorada (raiz da web separada e senhas seguras com wp-password-bcrypt)

Você também pode verificar o GitHub Repo para um uso mais detalhado:

    
por Carl Alberto 16.05.2016 / 05:22
fonte
0

Dê uma olhada no enlace que pode ajudá-lo.

    
por edelwater 14.11.2010 / 22:09
fonte
0

Não, não é possível renomear a pasta wp-admin com qualquer código ou htaccess,

No passado eu fiz o mesmo para um cliente, realizando uma pesquisa completa de pastas via Coda (o editor que eu uso) para a tag "wp-admin, wp-content ... etc" e eu removi o "wp- "dos arquivos.

Depois disso, você poderá instalá-lo, mas: Você tem que fazer o mesmo com os plugins que você quer instalar, Você precisa atualizar o núcleo manualmente, limpando a tag "wp-" das novas versões.

De todas as maneiras, eu não sugiro que você faça algo assim, deixe-o como está e tente implementar uma página de login / registro / perfil de usuário para proporcionar aos seus usuários / clientes uma experiência melhor.

  

Cristian de Cozmolabs ter   escreva um tutorial muito bom. Você pode   editar o código um pouco e fazê-lo rodar em   qualquer tema WordPress.

Você também pode adicionar um formulário de postagem do front-end para que o administrador e os usuários com os recursos possam escrever a partir do front-end.

  

Aqui você pode ver um exemplo e código   sobre como criar uma página de Frontend Post.    Envio de postagens front-end

Além disso, você pode procurar por alguns plugins que fazem o mesmo com mais funcionalidade.

    
por Philip 10.01.2011 / 10:56
fonte