Configuración del fichero htaccess de WordPress

En este post voy a repasar la configuración del fichero htaccess de WordPress para conocer las diferentes funcionalidades que posee y que se le pueden aplicar.

Este fichero htaccess se suele crear de manera automática tras una instalación de WordPress, pero en caso de que no tengamos permisos tendremos que crearlo nosoros mismos.

En esta URL del final tienes la documentación oficial del fichero.

Su ubicación se encuentra en la raíz de nuestro WordPress, su código por defecto es el siguiente:

Apache

# BEGIN WordPress

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

# END WordPress

 

Centrémonos en estas 2 líneas:

Apache

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

La primera línea comprueba si la URL a la que se está accediendo es un fichero/archivo existente en el servidor, mientras que en la segunda línea se comprueba si la URL a la que se ha accedido es un directorio existente en el servidor.

En ambos casos se busca la negación de lo comprobado, de esta manera, si no es ni un fichero/archivo o directorio llegamos a la siguiente línea que es quién resuelve la URL y devuelve el contenido almancenado en el gestor de WP:

Apache

RewriteRule . /index.php [L]

Supongamos que accedemos al panel de login de nuestro backend de WordPress –> /wp-login.php, al ser un fichero/archivo válido nuestro htaccess deja que cargue direcho fichero y no resuelve la URL el core de WP.

PERMALINKS

Los permalinks son la estructura de enlaces de nuestro WP, con una estructura de permalinks correcta podemos mejorar notablemente el posicionamiento de nuestra web

Se configuran en el panel de administración –> Ajustes –> Enlaces permanentes y llegamos a la siguiente pantalla:

permalinks WordPressEn esta pantalla podemos elegir el tipo de URLs de nuestros post, categorías y etiquetas. Para los novatos os recomiendo elegir una de las siguientes opciones y dejar vacías la categoría base y etiqueta base:

Día y nombre
Mes y nombre
Nombre entrada
En mi blog he optado por escoger una estructura personalizada de URL.

Ahora solo nos faltaría guardar los cambios y el fichero htaccess de WordPress se debería actualizar, en caso de no disponer de los permisos necesarios para modificarlo, nos saldría un mensaje avisándonos para que editemos el fichero nosotros mismos copiando el código que nos sale por pantalla.

HTTP Compression
Permite comprimir el contenido en el servidor antes de enviarlo al cliente. Muy bueno para mejorar el WPO (Web Performance Optimization) 

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Force Compression for certain files
<FilesMatch “\.(js|css|txt|xml)$”>
SetOutputFilter DEFLATE

Yo suelo usar

# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

Opcione interesantes.

IMPEDIR EL LISTADO DE DIRECTORIOS DE WORDPRESS

Con esta simple línea impedimos el listado de directorios vía URL:

Apache

Options -Indexes

ENLACE SIMBOLICOS

Seguir enlace simbolicos y no poder ver directorios Ademas FollowSymLinks es necesario mod_rewrite.

Options FollowSymLinks

FICHERO POR DEFECTO

DirectoryIndex index.php index.html /index.php

CAMBIAR LOS PERMISOS DE NUESTRO HTACCESS

Tras la edición del fichero htaccess es muy recomendable cambiar sus permisos en el servidor a 444.

CACHE DEL NAVEGADOR DEL USUARIO

Mejora el uso de nuestro ancho de banda en lso usuarios que vuelven.

# EXPIRATION HEADERS.
# EXPIRATION HEADERS Activado.
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault “now plus 15 minutes”
ExpiresByType text/html “access plus 900 seconds”
# CSS and JS expiration: 1 week after request
ExpiresByType text/css “now plus 1 week”
ExpiresByType application/javascript “now plus 1 week”
ExpiresByType application/x-javascript “now plus 1 week”
ExpiresByType image/jpg “access 1 year”
ExpiresByType image/jpeg “access 1 year”
ExpiresByType image/gif “access 1 year”
ExpiresByType image/png “access 1 year”
ExpiresByType text/css “access 1 month”
ExpiresByType text/html “access 1 month”
ExpiresByType application/pdf “access 1 month”
ExpiresByType text/x-javascript “access 1 month”
ExpiresByType application/x-shockwave-flash “access 1 month”
ExpiresByType image/x-icon “access 1 year”
ExpiresDefault “access 1 month”
# Image files expiration: 1 year after request
ExpiresByType image/bmp “now plus 1 year”
ExpiresByType image/gif “now plus 1 year”
ExpiresByType image/jpeg “now plus 1 year”
ExpiresByType image/jp2 “now plus 1 year”
ExpiresByType image/pipeg “now plus 1 year”
ExpiresByType image/png “now plus 1 year”
ExpiresByType image/svg+xml “now plus 1 year”
ExpiresByType image/tiff “now plus 1 year”
ExpiresByType image/vnd.microsoft.icon “now plus 1 year”
ExpiresByType image/x-icon “now plus 1 year”
ExpiresByType image/ico “now plus 1 year”
ExpiresByType image/icon “now plus 1 year”
ExpiresByType text/ico “now plus 1 year”
ExpiresByType application/ico “now plus 1 year”
ExpiresByType image/vnd.wap.wbmp “now plus 1 year”
ExpiresByType application/vnd.wap.wbxml “now plus 1 year”
ExpiresByType application/smil “now plus 1 year”
# Audio files expiration: 1 year after request
ExpiresByType audio/basic “now plus 1 year”
ExpiresByType audio/mid “now plus 1 year”
ExpiresByType audio/midi “now plus 1 year”
ExpiresByType audio/mpeg “now plus 1 year”
ExpiresByType audio/x-aiff “now plus 1 year”
ExpiresByType audio/x-mpegurl “now plus 1 year”
ExpiresByType audio/x-pn-realaudio “now plus 1 year”
ExpiresByType audio/x-wav “now plus 1 year”
# Movie files expiration: 1 year after request
ExpiresByType application/x-shockwave-flash “now plus 1 year”
ExpiresByType x-world/x-vrml “now plus 1 year”
ExpiresByType video/x-msvideo “now plus 1 year”
ExpiresByType video/mpeg “now plus 1 year”
ExpiresByType video/mp4 “now plus 1 year”
ExpiresByType video/quicktime “now plus 1 year”
ExpiresByType video/x-la-asf “now plus 1 year”
ExpiresByType video/x-ms-asf “now plus 1 year”
# Font expiration: 1 year after request
ExpiresByType application/vnd.ms-fontobject “access plus 1 year”
ExpiresByType font/ttf “access plus 1 year”
ExpiresByType font/otf “access plus 1 year”
ExpiresByType font/x-woff “access plus 1 year”
ExpiresByType image/svg+xml “access plus 1 year”
ExpiresByType application/pdf “access plus 1 year”
<FilesMatch “\.php$”>
ExpiresByType text/html “now”

PROTEGER LOS FICHEROS CLAVE DE WORDPRESS

Hay que mantener a salvo los ficheros más importantes de nuestro WP, tales como los de login, configuración, instalación o información de la versión que usamos.

Apache

 

<files .htaccess>
Order allow,deny
Deny from all
</files>
<files readme.html>
Order allow,deny
Deny from all
</files>
<files readme.txt>
Order allow,deny
Deny from all
</files>
<files install.php>
Order allow,deny
Deny from all
</files>
<files wp-config.php>
Order allow,deny
Deny from all
</files>
<files xmlrpc.php>
Order allow,deny
Deny from all
</files>

 

LOS TIPOS DE FICHEROS SON IMPORTANTES

AddType text/html .asp .aspx .ascx .ashx .asmx
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType font/x-woff .woff
AddType image/svg+xml .svg

El resto lo puedes ver en

https://codex.wordpress.org/htaccess

Te interesa

7 claves para triunfar con el email marketing

Por cada euro invertido en email marketing se obtienen casi 80 euros de retorno. 7 claves …

Últimas noticias de Frikipandi.com

Las noticias se actualizan cada 15 minutos.