Como mover a página de login do wp-admin para outro local?

Pode ser outra camada de segurança …

Solutions Collecting From Web of "Como mover a página de login do wp-admin para outro local?"

Esta não é uma ótima idéia de segurança porque a página wp-login ou wp-admin por si só não representa uma ameaça à segurança. Embora se possa argumentar que, se alguém tivesse sua senha / nome de usuário, talvez não pudessem encontrar onde logar, portanto, segurança através da obscuridade.

Como o Kronus disse que você provavelmente poderia dirigir-se a alguns reencaminhados extravagantes, não sabe o quão bem isso seria em escala com lançamentos futuros ou se vale a pena o problema, pessoalmente, eu não acho que vale a pena e eu vejo a segurança sério.

Gostaria de sugerir algumas idéias melhores para o seu login.

Ativar ssl para login / admin (htpps).

A senha protege sua página usando .htaccess (então você terá um login duplo).

Use um plugin como Limitar tentativas de login, que bloqueia um usuário após os logins com falha.

Nenhuma dessas respostas foi especialmente útil. Eu questiono os motivos do OP, mas aqui é como fazê-lo. Adicione isso às suas funções.php, mas certifique-se de replace “$ login_page_id”:

 // This will redirect the actual login page to your new page add_action( 'login_redirect', 'custom_login_redirect' ); function custom_login_redirect() { if ( 'wp-login.php' == $GLOBALS['pagenow'] ) { // Set your $login_page_id wp_redirect( get_permalink($login_page_id) ); die; } } // This will replace the login url used by WordPress add_filter( 'login_url', 'custom_login_url', 10, 2 ); public function custom_login_url( $login_url='', $redirect='' ) { // Set your $login_page_id return get_permalink($login_page_id); } 

Na sua nova página de login, você pode simplesmente adicionar esta function para mostrar um formulário de login:

 < ?php wp_login_form(); ?> 

http://codex.wordpress.org/Function_Reference/wp_login_form

Você pode desativar a página de login do wp de suas funções conectando-se a login_head:

 add_action( 'login_head', 'wp_die'); 

(é obviamente uma maneira muito desajeitada de fazê-lo, mas evita que alguém possa fazer login nessa página. Você poderia fazer uma function de redirecionamento, ou uma mensagem de aviso, em vez de apenas um dado.)

E copie o arquivo de login wp existente para outro local, certificando-se de atualizar o caminho relativo para wp-load.php próximo ao topo (e quaisquer outros caminhos relativos que possam estar lá, incluindo os links para si e as ações do formulário).

(Obviamente, você terá que remover a ação que você adicionou para login_head aqui, caso contrário você também não poderá fazer o login desta página.)

Então, você só precisa adicionar um filtro para login_url que retorna o endereço da sua nova página de login, caso contrário as pessoas que solicitam arquivos do wp-admin serão redirecionadas para a página de login anterior, que agora está desativada.

Basta construir novas páginas de login em subdirs. Copie a página de login existente no wp para um novo diretório no seu webroot (talvez “/ login”), renomeie-o index.php, adicione um bootstrap do WordPress ao topo da página e faça o que quiser com ele (theming, etc. ).

Você precisa ajustar o código padrão da página de login um pouco, principalmente para encontrar / replace links rígidos e redirecionamentos para “wp-login.php”. Mas, enquanto você deixar todos os ganchos e filtros no lugar, essa abordagem não estragará qualquer integração de plugins. E as atualizações principais do WordPress estão corretas, a menos que a atualização inclua mudanças na página de login do wp em si (o que raramente acontece em versões menores).

Você também pode criar páginas de conta de usuário desta forma (eu coloco-as no diretório “/ profile”). Depois de ter feito isso, os usuários de nível de assinante nunca precisam entrar no wp-admin, para que você possa protegê-lo com um arquivo htaccess. Esta é a parte que realmente lhe dá a segurança adicional que você estava procurando. Apenas certifique-se de fazer uma exceção no seu htacces para o arquivo admin-ajax, uma vez que alguns plugins o usam no frontend.

Com certeza você não vai encontrar uma solução de plug-in. Mas se você fizer isso, avise-nos!

Você pode tentar editar o .htaccess e executar um redirecionamento para outro caminho de sua conveniência.

Você poderia usar esse plugin:

http://wordpress.org/extend/plugins/wp-login/

Você pode apenas criar uma página e informar ao plugin onde está o login. Mas tudo isso basicamente é redirect wp-login.php para sua “página”. Portanto, qualquer bot que procura o wp-login.php só será redirecionado para sua “página”.

Para proteger sua página de login de bots, você deve usar uma combinação de um cookie e .htaccess, já que a maioria dos robôs não usam cookies. Algo assim:

 RewriteCond %{HTTP_COOKIE} !^PHPSESSID=\w+ [OR] RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?example\.com/ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule ^wp-(comments-post|login|register)\.php http://example\.com [R=301,L,NS] 

No exemplo acima, estou usando o Cookie Session Session PHP, já que é o mais fácil de implementar.

Eu me ressentei a maioria das respostas dadas aqui. O OP publicou uma pergunta válida e a maioria das respostas dadas destinava-se a evadir o fato de que eles não têm uma idéia de como contornar a limitação do WordPress nesta questão.

OP, a melhor coisa que você pode para este assunto é a filtragem de IP e permitir apenas as redes que podem entrar na área do WP-Admin (por exemplo, seu IP de escritório, IP dos desenvolvedores, etc.). Você nunca ganhou seu trabalho na Starbucks. É assim que as redes corporativas o fazem, então você também pode fazer o mesmo.

 ## .htaccess inside the wp-admin folder order deny,allow deny from all allow from xxx.xxx.xxx allow from xxx.xxx.xxx allow from xxx.xxx.xxx 

Nos cinco anos em que esta questão foi aqui, ninguém abordou a questão central: a segurança por obscuridade é uma técnica válida para evitar robôs automáticos e manter os logs limpos. O objective de mover / esconder wp-admin é para aparecer em um bot que este não é um site WordPress.

A maneira como eu escondo (mas não movo) o wp-admin é apresentar aos bots a página 404 padrão quando tentam acessar essa URL. Somente o access do endereço IP da minha casa permite que a página wp-admin retorne devidamente. Este método olha para um atacante / bot como se o wp-admin não existisse, mas não quebra o código WP principal ou plugins que codificam o caminho wp-admin . Este código .htaccess faz a escritura:

 RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteRule ^/?wp-admin - [R=404,L] 

Claro, ao usar o código, substitua 12.34.56.78 por seu próprio endereço IP . Não esqueça de escaping do . Os caracteres como o endereço IP são interpretados como um regex.

Para modificar o logout URL (em admin), edite suas funções.php:

 add_filter( 'logout_url', 'custom_logout_url'); function custom_logout_url( $login_url) { $url = str_replace( 'wp-login', 'your_logout_file', $login_url ); return $url; } 

Esta resposta é uma adição ao dotancohen porque está incompleta. A resposta do dotancohen não conta para o wp-login.php , que você deve considerar se você está tentando ocultar o WordPress.

Veja como você 404 em wp-admin e wp-login.php :

 RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteCond %{THE_REQUEST} \ /+wp-(admin|login) 

Eu encontrei uma solução para mover o login do WordPress de /login/ , /wp-admin/ ou /wp-login.php para /cms usando apenas as regras de reescrita .htaccess .

Não é necessário nenhum plugin!

Coloque isso no arquivo .htaccess da raiz do projeto:

  RewriteEngine on RewriteBase / # Move WordPress login to /cms. RewriteRule ^cms wp-login.php?cms=unlocked [L] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{QUERY_STRING} !^cms=unlocked RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^loggedout=true RewriteCond %{REQUEST_METHOD} !POST RewriteRule ^(.*)$ - [R=403,L] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{QUERY_STRING} ^loggedout=true RewriteRule ^(.*) ./cms? [R=302,NC,L] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{HTTP_REFERER} !cms$ RewriteCond %{REQUEST_METHOD} POST RewriteRule ^(.*)$ - [R=403,L]  

Felicidades!

Atualização: Eu melhorei algumas regras, então mesmo as solicitações POST para /wp-login.php desencadearão um 403 forbidden error . Isso ajudará contra bots que estão tentando acessar o painel usando methods de força bruta. Não hesite em comentar nesta postagem se você tiver alguma melhoria dessas regras.

Resolvi esse problema excluindo três dos meus blogs e alterando os parâmetros de limite de login para o máximo possível. 9999

Para o spammer de scum no 208.91.199.94 que atingiu minha página de login 750 vezes nos últimos dois dias, estou trabalhando para eliminá-lo de outras maneiras.