Si tienes cPanel, busca la opción “Directorios Protegidos con contraseña”:
Al hacer clic aquí, llegamos a una pantalla que nos pide que seleccionemos un directorio. Navega hasta
wp-admin
, seleccionalo y llegarás a una pantalla como esta:
Marca la casilla “Protege este directorio con contraseña”. En “Nombra este directorio protegido” pon el texto que quieras que aparezca cuándo se pida la contraseña en el navegador; puedes poner lo que quieras. Dale a “Salvar”. Entonces crea un usuario y una contraseña y pulsa sobre el botón “Crear/modificar usuario autorizado”. Al intentar ir a wp-admin ahora aparecerá una ventana emergente donde deberás ingresar el usuario y contraseña que hayas creado. Por ejemplo, en Chrome tiene este aspecto:
Lo que ha hecho este proceso ha sido crear un archivo
passwd
con las credenciales del usuario y crear un archivo .htaccess
en el directorio wp-admin
con el siguiente contenido:AuthType Basic
AuthName "Se requiere autentificación"
AuthUserFile "/home/user/.htpasswds/public_html/wp-admin/passwd"
require valid-user
La ruta que ves en
AuthUserFile
es la ruta hacia el archivo que contiene las credenciales. La ubicación exacta puede variar de un servidor a otro y si quieres puedes establecer una ubicación diferente y mover el archivo a esa ubicación. Si no tienes cPanel y tienes otro software, lo siento pero no lo voy a cubrir en este tutorial, es imposible cubrirlos todos. Pero vamos a ver un método manual bastante fácil:- Genera el arhivo
passwd
en este generador online. - Sube el archivo a la ubicación que desees, preferiblemente fuera del directorio
public_html
- Crea el archivo
.htaccess
dentro del directoriowp-admin
e introduce las mismas líneas anteriores cambiando el valor deAuthUserFile
por la ruta dónde hayas subido el archivopasswd
- Listo!
Si lo prefieres, desde la línea de comandos puedes crear el archivo htpasswd con:
# Utiliza -c para crear el achivo y añadir user1
htpasswd -c /home/account/.htpasswd user1
# Si el archivo ya existe, puedes añdir usuarios así (Si user2 ya existe podrás actualizar la contraseña):
htpasswd /home/account/.htpasswd user2
Ya tenemos el directorio
wp-admin
protegido con contraseña.Permitir solicitudes Ajax/Post
El API Ajax de WordPress se ejecuta en el archivo
wp-admin/admin-ajax.php
. Hemos bloqueado el acceso a todo el directorio wp-admin
, así que cualquier plugin, tema o widget que utilice el API Ajax en el frontend dejará de funcionar.
Lo mismo ocurre con las solicitudes GET/POST realizadas a través de
admin_post_{$action}
o admin_post_nopriv_{$action}
, las cuales necesitan acceso a wp-admin/admin-post.php
.
Para solucionarlo podemos seguir bloqueando el directorio
wp-admin
pero permitir las solicitudes a los archivos admin-ajax.php
y admin-post.php
. Abre el archivo .htaccess en wp-admin
generado en el paso anterior e introduce estas líneas al comienzo:<FilesMatch "(admin-ajax|admin-post)\.php">
Order allow,deny
Allow from all
Satisfy any
</FilesMatch>
3
fuente: https://goo.gl/o5xW2o
Permitir solicitudes a imágenes, css y javascript
Las imágenes, archivos CSS y javascript localizados bajo el directorio wp-admin, aunque raro, pueden ser utilizados en el frontend por algunos temas o plugins. Si estás en este caso y quieres que todo siga funcionando deberá crear un archivo .htaccess en
wp-admin/css/
, wp-admin/js/
y wp-admin/images/
con el siguiente contenido:Order allow,deny
Allow from all
Satisfy any
En estos directorios no hay nada más que archivos css, js y de imágenes respectivamente. No obstante, si quieres afinar más por si las moscas, puedes poner una regla
<File>
según el directorio y los tipos de archivos. Por ejemplo, en el directorio wp-admin/js/
podrías poner el siguiente .htaccess para permitir sólo solicitudes a archivos con extensión .js
:<Files ~ "\.(js)$">
Order allow,deny
Allow from all
Satisfy any
</Files>
Comentarios