htaccess mejores configuraciones 2015

Publicado el 17 enero 2015 por Titogsm

Este archivo es Muy Importante en tu Sitio de el dependen muchas cosas y cuando lo Tienes bien configurado pues te facilita el Trabajo, por eso te e traido las mejores configuraciones para que puedes escoger a tu gusto cuales son las que se ajustan a tu sitio Web.

En esta Ocacion Usaremos Wordprees como Ejemplo

Comenzamos:

Este archivo .htaccess por defecto debe incluir cualquier instalación de WordPress es:

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

Debemos decir que cualquier cambio que se realice en este archivo debería ir "" de # END WordPress y nunca antes.

Esto garantiza que no se rompe ninguna de las funciones de WordPress basadas en .htaccess. Antes de realizar cambios al archivo .htaccess se recomienda siempre realizar una copia de seguridad.

Entiendiendo este Punto les dejamos muchos cambios que pueden añadir conforme
a sus deseos.

# Bloquear IPs de usuarios o bots indeseados

Apache puede ser utilizado para bloquear usuarios o bots indeseados a nuestra página web o blog. Este código permite visitar la página web o blog a cualquier persona, excepto a quien tenga las siguientes direcciones IP (cambiar las IPs con las IPs que quieras bloquear):

<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
deny from 93.121.788
deny from 223.956.789
deny from 128.456.780
</LIMIT>

# Redireccionar el día y el nombre de los enlaces permanentes a /% postname%/

Lo primero que debes de hacer es acceder a tu panel de administración de WordPress, ir a Ajustes → Enlaces permanentes (permalinks) y seleccionar "personalizar". Rellena el campo con /% postname%/:

Ahora tenemos que redirigir todos los backlinks (enlaces entrantes) usando la antigua estructura de enlaces permanentes (permalinks) a la nueva estructura de enlaces permanentes. Para ello, tendrás que editar el archivo .htaccess. e insertar las siguiente líneas de código:

RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://http://www.tu_dominio.com//$4

Si quieres configurar unos enlaces permanentes más óptimos, te aconsejo cambiar /% postname%/ por /% category%/% postname%/.

# Redireccionar las visitas a una página de mantenimiento

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L]

# Redireccionar hacia www o sin www con .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^yourblogname.com [NC]
RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [L,R=301]
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.tu_dominio.com [NC]
RewriteRule ^(.*)$ http://tu_dominio.com/$1 [L,R=301]

# Configurar URLs canonical con .htaccess

# Set the canonical url
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tu_dominio\.com$ [NC]
RewriteRule ^(.*)$ http://www.tu_dominio.com/$1 [R=301,L]

# Redireccionar tu feed hacia FeedBurner

Con estos pasos redirecciona http://www.tupaginaweboblog.com/feed a .

# temp redirect wordpress content feeds to feedburner
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$  [R=302,NC,L]
</IfModule>

# Redireccionar tu feed de comentarios hacia FeedBurner

# temp redirect wordpress comment feeds to feedburner
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$  [R=302,NC,L]
</IfModule>

# Redirecciones 301 para SEO con .htaccess

Tambien el siguiente código para redirigir a una página específica sin mostrar la antigua página de error.

<a class="_hootified" a="" href="#" #seo"="" onclick="javascript:var e = document.createEvent("CustomEvent"); e.initCustomEvent("hootletEvent", true, true, {type: "hash", value: "#SEO"});  document.body.dispatchEvent(e); return false;">#SEO</a> Friendly 301 Redirects
Redirect 301 /abc/file.html http://www.tu_dominio.com/def/file.html

# Forzar la cache desde .htaccess

Este código para el .htaccess no ayudará en la carga inicial de la página web o blog, pero si lo hará significativamente en posteriores cargas enviando estados 304 cuando los elementos solicitados no se hayan modificado.

FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus x seconds"

# Permitir únicamente tu IP para acceder al panel de administración de WordPress

Reemplaza la IP de la línea de código "with allow from xx.xx.xx.xx" con la tuya para que sólo tu IP pueda acceder al panel de administración wp-admin de wordpress.

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Wordpress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</LIMIT>

# Bloquear comentarios a peticiones no referenciadas (Spam)

Simple truco para evitar que los spammers publiquen o ataquen tu página web o blog.

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

# Bloquear una IP spam

Para bloquear ciertas direcciones IP para evitar que accedan a tu página web o blog, añade las siguientes líneas de código en tu archivo .htaccess y sustituye la dirección IP del ejemplo con la que quieras bloquear.

## USER IP BANNING
<Limit GET POST>
order allow,deny
deny from 200.49.176.139
allow from all
</Limit>

# Denegar acceso al fichero de configuración wp-config de WordPress

El archivo wp-config.php de WordPress incluye toda la información importante, como el nombre de base de datos. Es vital tenerlo bien protegido.

# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# Limitar el peso de los archivos subidos a 20mb

Para limitar el tamaño de los archivo que subes en wordpress hasta 20MB, utiliza el siguiente código:

# limit file uploads to 10mb
LimitRequestBody 10240000

# Personalizar la página de error 404 con .htaccess

# custom error pages
ErrorDocument 401 /err/401.php
ErrorDocument 403 /err/403.php
ErrorDocument 404 /err/404.php
ErrorDocument 500 /err/500.php

# Añadir barra (/) al final de las URLs

Para añadir una barra al final de tus enlaces (URLs), inserta el siguiente código en tu archivo .htaccess:

<a class="_hootified" a="" href="#" #trailing"="" onclick="javascript:var e = document.createEvent("CustomEvent"); e.initCustomEvent("hootletEvent", true, true, {type: "hash", value: "#trailing"});  document.body.dispatchEvent(e); return false;">#trailing</a> slash enforcement
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://tu_dominio.com/$1/ [L,R=301]

# Proteger directorios con contraseñas

Una forma sencilla de proteger mediante contraseña los directorios de tus blogs.

AuthType Basic
AuthName "restricted area"
AuthUserFile /usr/local/var/www/html/.htpasses
require valid-user

# Resolver errores en los enlaces (URLs) con .htaccess

Este truco puede ser útil para auto-corregir errores ortográficos de tus enlaces (URLs).
<IfModule mod_speling.c> CheckSpelling On </IfModule>

# Asegurar los plugins de WordPress

Los plugins de wordpress suelen tener "puertas traseras" y suelen ser sitios por los que los hackers pueden entrar en tu página web o blog. Para evitar que otras personas tengan acceso directo a los archivos de tus plugins usa el siguiente código:

<Files ~ "\.(js|css)$">
  order allow,deny
  allow from all
</Files>

# Desactiva el Trade de http y Track

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# Evita el hotlinking

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?tu_dominio.com/.*$ [NC]
RewriteRule .(gif|jpg)$ http://www.tu_dominio.com/hotlink.gif [R,L]
Y por ultimo protege el archivo htaccess el mas importante pues de nada vale 
tantos cambios sin protegerlo a el. 
<Files .htaccess>
order allow,deny
deny from all
</Files>
Es todo espero toda esta informacion les puedan sacar provecho y si conocen alguno
les agradezco si lo mencionan y agregan los comentarios estan disponibles.