.htaccess Perfecto para WordPress

Son ya varias veces las que hemos aprendido como mejorar aspectos de nuestro blog WordPress configurando adecuadamente el fichero .htaccess, pero esto es un paso adelante.

Y recordé que Josiah Cole publicó un fichero .htaccess que se planteaba como «casi» perfecto para un blog WordPress. Y lo es, sobre todo en aspectos de seguridad puede mejorar muchos enteros tu blog.

Las líneas que comprende están pensadas para que sustituyan el contenido completo de tu .htaccess actual, salvo que necesites alguna modificación que deba incluir algún plugin o alguna redirección que hubieses incluido anteriormente.

El proceso es bien sencillo:

  1. Haz copia de tu .htaccess anterior para referencia posterior o incluir redirecciones, etc.
  2. Abre tu editor de texto plano preferido (no vale Word o similares) como TextEdit en Mac o Notepad Plus en Windows.
  3. Incluye este código en el archivo:
    # protege el fichero htaccess
    order allow,deny
    deny from all
     
    # desactiva la firma del servidor
    ServerSignature Off
     
    # limita la carga de archivos a 10mb
    LimitRequestBody 10240000
     
    # protege wpconfig.php
    order allow,deny
    deny from all
     
    #quien tiene acceso y quien no
    order allow,deny
     
    #denegar desde 000.000.000.000
    allow from all
     
    #documentos personalizados de error (lo cambias por los tuyos)
    ErrorDocument 404 /notfound.php
    ErrorDocument 403 /forbidden.php
    ErrorDocument 500 /error.php
     
    # desactiva la navegacion de directorios
    Options All -Indexes
     
    #redirige un dominio viejo al nuevo - si es necesario
    Redirect 301 /viejo.php http://tudominio.com/nuevo.php
     
    #bloquea los dominios indicados
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} meneame\.com [NC]
    RewriteRule .* - [F]
     
    #desactiva el robo de imagenes con la opcion de una imagen personal
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?tudominio.com/.*$ [NC]
    #RewriteRule \.(gif|jpg)$ - [F]
    #RewriteRule \.(gif|jpg)$ http://tudominio.com/imagen_robada.gif [R,L]
     
    # compresion php - usar con precaucion
    php_value zlib.output_compression 16386
     
    # establece la url canonica (amigable)
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^tudominio\.com$ [NC]
    RewriteRule ^(.*)$ http://www.tudominio.com/$1 [R=301,L]
     
    # protege de comentarios spam
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.*tudominio.com.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
    RewriteRule ^post/([0-9]+)?/?([0-9]+)?/?$ /index.php?p=$1&page=$2 [QSA]
  4. Guarda el archivo como «htaccess.txt» (sin las comillas9
  5. Sube el fichero a la carpeta donde tienes instalado WordPress
  6. Renombra el archivo a ‘.htaccess’ (sin las comillas y ojo que no se te olvide el punto antes del nombre)

Ya lo tienes, un .htaccess perfecto para WordPress (o casi)

(10 votos, promedio: 3.2) Valora este artículo para ayudar a mejorar la calidad del blog

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

47 comentarios en “.htaccess Perfecto para WordPress”

  1. @Kquijada: ¿que no te funcionó?, tiene muchas cosas, y no hay que ponerlo todo, solo lo que necesites.

    @dIEGO: depende, hay muchas líneas, cada una para una cosa, por eso hay comentarios que indican lo que hace cada una 🙂

  2. Hola

    Felicidades, de verdad que esta web e a resuelto la vida varias veces y ahora me sucede algo que no me había pasado, sucede que estoy revisando el hosting de un nuevo blog que estoy montando, me encuentro con que no esta el .htaccess por ningun lado, esto no me había sucedido antes, ya cambie las opciones de mis ftp para mostrar todos los archivos, tendre que crearlo yo mismo? alguien sabe?
    Gracias

  3. mejor que dejes un archivo de texto adjunto, algunos codigos no están… como el para proteger el archivo .htaccess y el wp-config..

  4. Fernando no me funciona, cuando lo subo al host me muestra una de las lineas de del htaccess cuando la pagina no es encontrada…

  5. Buenos días:
    He copiado el código y realizado los cambios respecto al domninio y ruta de archivos (como el del error 404) pero no me funciona. Tampoco el creado para evitar el hotlink. En este caso desmarqué el # de las 2 últimas líneas para habilitar, con la última, el dominio correcto.

    He probado el hotlinkng desde esta página

    http://altlab.com/hotlinkchecker.php

    pero sigue cargándo la imagen que pongo de prueba )

    ¿Estaré haciendo algo mal?. Por favor, si alguien me puede orientar.

    Un saludo desde Lima,Perú
    Muchas gracias.

    PD.
    Ya revisé el artículo original en inglés y nada, y por supuesto, el .htaccess esta en la raíz de mi hosting, en la carpeta www

  6. Hola Fernando, como te va?

    Mira, hace unos días vengo renegando con esto del htaccess, la verdad que me ha traido problemas con la version 2.7 de WordPress…

    Ya que no puedo editar nada desde mi panel, hablando de permalinks, etc.

    Me gustaria saber que tengo que editar de mi htaccess para poder manejar mis permalinks a gusto. Ya sea, por fecha y dia, numericos, etc.. 🙂

    Agradeceria tu respuesta, muchas gracias por el servicio diario… (Y)

  7. A.b. Contreras

    una consulta rapida, si pongo el codigo para desactivar la navegacion de directorios, tambien afecta a los bots de google, afecta al seo?

    Gracias por su atencion.

      1. @Fernando Hay una Forma que Wp Cree este alchivo Solo?? si la decidad de que yo tenga que crearlo? por que sincera mente no entiendo nada de lo que pusiste mas ariba toda esa linea de codigo me ponen loco!! mas que todos post de mi website me dan 404 Error – Not Found !! pero mi htaccess tiene esta line de codigo Pero no funciona!!
        # BEGIN WordPress

        RewriteEngine On
        RewriteBase /
        RewriteRule ^index.php$ – [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]

        # END WordPress

  8. Hola, te cuento. Tengo el blog http://www.otromundoverde.com/blog
    El tema es q no me crea el htaccess. Y si lo creo a mano y lo tiro en el dir del wp no me toma efecto.

    A su vez cuando cambio el permalink me da error.. me parece que es por que no puede crear el archivo. Mismo probe con los plugins "redirector", "Dean's Permalinks Migration", "Permalink Redirect" y siempre sucede igual. En cuanto cambio el permalink intento accerde a http://www.otromundoverde.com/blog y da error, ahora, si le agrego el index.php anda bien . A su vez a las notas, les pone el formato nuevo que defino en el admin de wordpress pero ninguna funciona si salgo del formato de url actual…..

    Por favor. su ayuda,.

    Agracias

  9. freedevelopers

    Las lineas 2, 3 y 12, 13 hacen lo mismo indicándose en el comentario 2 tareas "supuestamente" diferentes pero al ser la misma orden y no especificar no es muy coherente, es que está mal copiado del artículo original le falta el: files .htaccess para especificar el archivo en cada caso.

  10. Oye que plugin utilizas o como le haces para insertar ese codigo del htaccess con estilo y el texto plano, Gracias

  11. Joseph Huanca Cardenas

    Mi sitio web (www.librosparadescargargratis.com) no se visualiza correctamente, al ingresar, en lugar de mostrarse las dós últimas entradas (configure el sitio para que se muestren las dos últimas entradas), sale la opción de búsqueda. Qué puede estar pasando, será el .htaccess?

    El cógido que tengo en el el .htacces es el siguiente:

    # -FrontPage-

    IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

    order deny,allow
    deny from all
    allow from all

    order deny,allow
    deny from all

    AuthName librosparadescargargratis.com
    AuthUserFile /home/librospa/public_html/_vti_pvt/service.pwd
    AuthGroupFile /home/librospa/public_html/_vti_pvt/service.grp

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

  12. Hola como hago para que mi pagina deje de ser pagina duplicada, y solo para que funcione con www y sin www o alguien sabe de htaccess, por fqvor responder mi mensaje…Gracias

  13. Tengo un alojamiento que me permite tener 3 webs. He seguido los pasos que me indica el server que es crear una carpeta nueva para alojar una nueva página de wordpress. Allí he instalado la nueva página. El problema que tengo es que puedo acceder a la pagina, pero cuando intento ir a las paginas o post, la url que mi indica es:

    Y yo quisiera que saliera:

    Es decir que omitiera la url de la pagina que ocupa el principal. Es decir que sean urls amigables. He estado leyendo y hay que tocar el htaccess pero lo hago y cuando eso ocurre, o no funciona y sigo viendo las mismas urls o lo cambia y entonces no consigo ir a ningun lado pq no me cargan las paginas, ni siquiera la de logarme en elwordpress.

    Este es el htaccess que tengo:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^http://www.bocaorella.cat$ [NC]
    RewriteRule ^(.*)$ [F]

    Donde bocaorella es la pagina principal del server y todosketchup la carpeta del dominio aparcado.

    He intentado realizar el paso que indicas como url canónica pero tampoco funciona, los del servidor se lavan las manos dicendo que es cosa del wordpress, que el .htaccess del primer dominio impide que actue el del segundo pero no consigo arreglarlo. 

  14. Jaimebenasque

    buenas, varias preguntas de novato:

    pone que hay que añadir ese código al archivo, pero, ¿hay que escribir algo más al principio y final? me refiero a si copiando y pegando eso en el archivo funcionará o tiene que ir algo más?

  15. Gracias por tu publicacion…. Llevaba investigando un error 403 al personalizar mi tema y bendita solucion me has dado. Muchas Gracias!!!! muy buena tu publicacion.

  16. Pedro Luis Merino

    Hola, yo estoy teniendo un problema con un blog en el que no se ven las imágenes, ni las que subo yo ni las que vienen por defecto en el WordPress, como los iconos de administración, etc… Todo texto plano.

    Viendo los comentarios he comprobado una diferencia en el .htaccess que no sé si es importante, yo tengo puesto:

    #The next line modified by DenyIP
    order allow,deny
    #The next line modified by DenyIP
    #deny from all
    allow from all

    order deny,allow
    deny from all

    Y en otros sitios he visto, por ejemplo:

    order deny,allow

    No sé cuál es la correcta, además si el poner # en la 5ª línea, que en otras configuraciones no aparece, es quien está provocando el problema.

    El caso es que en varios blogs del mismo servidor todo funciona bien, pero en uno nuevo que acabo de instalar, que está en blanco del todo, que tiene el mismo htaccess que los demás -salvo lo específico al dominio y base de datos- no se ve ningún tipo de imágenes, ni iconos, sólo texto.

    ¿Alguien puede ayudarme con la solución?

  17. Luis Sorel Morales Cruz

    Hola que tal, yo tengo un problema un amigo me pidió que le ayudase a hacer una página para su hostal, el caso es que cuando alguien quiere entrar a la misma le manda un mensaje donde pide el usuario y la contraseña del CPanel es que acaso tiene que ver el archivo .htaccess o alguien podría ayudarme la pagina es http://www.hostalosamigosdeoaxaca.com.mx, realmente me ayudaría que alguien me orientara ya que cuando le doy en cancelar pues me deja entrar a la página pero no me muestra las imágenes

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
  • Responsable: Fernando Tellado (rgpd@ayudawordpress.com)
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido