ti-enxame.com

Posso renomear a pasta wp-admin?

É 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 será um pouco mais seguro, segurança por obscuridade e tudo isso.

69
Adam Dempsey

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

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

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

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

  3. Melhor ainda, faça o upload de um patch para trac que permita a 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.)

38
MikeSchinkel

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

Segurança através da obscuridade não é realmente segurança de qualquer maneira.

11
Viper007Bond

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

Para renomear o admin 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 nome que você quiser nomear seu novo administrador.

Primeiro você precisa dizer ao wordpress que você quer mudar o URL de administração.

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

Usando o filtro admin_url você pode alterar com sucesso a url do admin 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 semelhante.

Em segundo lugar, altere o .htaccess no seu 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, eu não sou um especialista quando se trata de editar o .htaccess, então algumas dessas coisas podem não ser necessárias. 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 vários sites 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 Host que eu tentei.

Adicionar a .htaccess

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

Cria um arquivo na pasta mu-plugins chamado new-admin.php e adiciona isto ai:

<?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);
}

Note: Essa abordagem parecia funcionar melhor em alguns hosts, mas ainda tinha o problema de não redirecionar os links do wp-admin para o novo URL de administração. Aqui está uma abordagem que tentei abaixo. Enquantoisto abaixo não funcionaEu 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' );
    }
  }
}
11
Bryan Willis

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

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

URL de 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 prefixo com qualquer coisa que desejar. Isso é tão bom do ponto de vista da segurança. Ele também tem a vantagem 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.

Do WordPress Codex: Dando WordPress seu próprio diretório

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

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.

9
cmc

Existe 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 indicações dela em seu código-fonte, efetivamente removendo informações do WordPress do seu site .

Ele explica como alterar o nome da pasta, o URL de login do wp-admin e certificar-se de que login.php redireciona para o site principal para que as pessoas possam ir diretamente para ele.

7
Graeme

Se você quiser impedir que os usuários do 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 fazer uma exceção para o arquivo admin-ajax, como alguns plugins usam para adicionar, um, AJAX funcionalidade).

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 limitando 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 bom aprimoramento básico.

6
MathSmath

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 regra a seguir para negar todos os endereços IP e permitir apenas o seu IP:

http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/

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>
2
Josh

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 regulares como mu-plugins)
  • Segurança aprimorada (raiz da web separada e senhas seguras com wp-password-bcrypt)

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

1
Carl Alberto

O QUE SOBRE TRABALHAR WP-ADMIN DE UM IFRAME?

Faça uma nova página no painel wp chamado "Admin". por exemplo: yourdomain/admin /

Você pode fazer uma declaração de caso com o header.phppage.php e/ou footer.php para desabilitar coisas no template não necessárias, usando:

<?php
if(!is_page('admin')): //if not the admin page.

//wrap code not needed or wanted.

else: ?>

<style type="text/css">
    .responsive-iframe {
    position: relative;
    padding-bottom: 56.25%; /*16:9*/
    height: 0;
    overflow: hidden;

    iframe {
        position: absolute;
        top:0;
        left: 0;
        width: 100%; //or 100vw
        height: 100%; //or 100vh
    }
}   
</style>

<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>

<?php 
endif;

Isso não é bonito, mas pelo menos até certo ponto você pode esconder o wp-admin do url. Outra maneira é possivelmente usar o encaminhamento de domínio com o URL de máscara ativado.

0
samjco

Dê uma olhada em http://wordpress.org/extend/plugins/stealth-login/ isso pode ajudá-lo.

0
edelwater

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

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

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

De todas as maneiras que eu não sugiro que você faça algo como isto, deixe-o como está e tente implementar uma página de Login/Registro/Perfil de Usuário para dar aos seus usuários/clientes uma experiência melhor.

Cristian de Cozmolabs escrevem um bom tutorial. Você pode editar o código um pouco e executá-lo 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 um post a partir do front-end.

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

Além disso, você pode dar uma olhada em alguns plugins Nice aqui que fazem o mesmo com mais funcionalidade.

0
Philip