Skip to content

Un archivo .htaccess perfecto para tu wordpress

optimizar-htaccess-paginas-web
Un archivo .htaccess perfecto para tu wordpress

Los archivos .htaccess son archivos que utilizamos para marcar directivas de acceso, al servidor apache, a las carpetas del hosting donde tenemos instalada nuestra página web, sin tener que utilizar el archivo de configuración del Apache. Además te permite marcar directivas individualmente para cada una de las carpetas o directorios de nuestra página web.

En este post, vamos a dar las nociones básicas para poder configurar y optimizar nuestro archivo  .htaccess para una página web hecha en wordpress. Con todas estas directivas conseguiremos, una página web mas segura. más rápida, optimizada para una mejor posición SEO, mejor visualización en todos los dispositivos y navegadores y un cacheo óptimo.

Lo primero de todo es hacer que el archivo .htaccess habilite las redirecciones para que podamos usar las URL amigables tan necesarias para el posicionamiento SEO.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ahora vamos a habilitar la compresión Gzip, para que la descarga de nuestra página web «pese menos», es decir, que en vez de tener que cargar por ejemplo 3 MB, con la compresión carguemos 1,4 MB, y ganemos esos milisegundos básicos a la hora de cargar nuestra web. Con esto comprimimos todos los archivos que permite los navegadores. Imágenes, archivos javascript, html, css, etc… Que decir tiene, que para que ésto funcione, debemos de tener instalado el módulo de compresión Gzip en nuestro servidor Apache.

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

A la hora de comprimir nuestros archivos web, también deberia ser necesario activar el módulo DEFLATE. Este módulo, hace casi la misma función que el anterior Gzip, pero es mucho más compatible con los navagadores antiguos y desfasados que puedan utilizar los visitantes de nuestra página web.

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

Orta manera de acelerar la carga de nuestra página web hecha en WordPress, es forzar al navegador a utilizar el cacheo de navegador (browser cache). Esto hará que nuestro navegador no tenga que cagar cada vez que visite nuetsra web todos los archivos. Es decir, las imágenes, archivos css, archivos javascript, fotografías, archivos html, etc… los almacene en memoria de navegador y nos tenga que descargarlos del servidor cada que vez que acceda a la página web. Para habilitar esta opción, debemos añadir las siguientes lineas a nuestro archivo .htaccess.

<ifmodule mod_expires.c>
 <filesmatch "\.(jpg|gif|png|css|js)$">
 ExpiresActive on
 ExpiresDefault "access plus 1 year"
 </filesmatch>
</ifmodule>

Existe una práctica llamada Hotlinking, que significa poder utilizar imágenes de un servidor en otro servidor web, es decir, mal llamado «robar imágenes». Para prevenir esto podemos utilizar las siguientes directivas en el archivo .htaccess.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?nuestrapaginaweb\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Aunque en la actualidad no recomiendo esta práctica, ya que si denegamos el uso del hotlinking en nuestra web, a la hora de compartir links de nuestra página web en redes sociales, visualmente no quedarán bien insertadas en Facebook, Twitter, Linkedin , etc.

También podemos utilizar este archivo, para proteger nuestra página web de ataques de esos «robots» en paises como China, Rusia, etc. Para eso podemos bloquear IPs o rangos de IPs. Aquí os dejo unos ejemplos, de IPs reales que se por experiencia que son utilizadas por robots.

order allow,deny
deny from 202.46.49.129
deny from 202.46.48.207
deny from 202.46.49.196
deny from 202.46.63.162
deny from 202.46.62.146
deny from 202.46.50.39
deny from 202.46.62.56
deny from 202.46.61.58
deny from 202.46.61.122
allow from all

Todos sabemos que la mejor manera de evitar el Spam de comentarios en nuestra página web, es utilizar el plugin Akismet. Pero podemos utilizar el archivo .htaccess para bloquear el acceso al archivo wp-comments-post.php por parte de los robots, que es el archivo que utilizan los spammers para publicar comentarios. Con las siguientes lineas podemos bloquear el acceso:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*nuestrapaginaweb.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

 

Por último, una medida muy efectiva, aunque poco ortodoxa, para proteger tu página web hecha en wordpress en el caso que siempre accedas a al administrador de tu web con las misma IP (por ejemplo desde una empres que disponga de IP estática). Podemos bloquear el acceso al archivo wp-admin,  a todas las IP que no sean la nuestra, con las siguientes lineas.

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order allow, deny
deny from all
allow from 1.1.1.1
</LIMIT>
Abrir chat
1
WhatsApp nuteco
Hola, ¿Podemos ayudarte?