Sei sulla pagina 1di 24

Inicio Libros Tutoriales Eventos Foro Buscar

Trucos y ejemplos de
configuracin del archivo
htaccess de Apache
Este artculo recopila los trucos y ejemplos de configuracin ms tiles para el arhivo
.htaccess del servidor web Apache.

Redireccin y reescritura de URL


Para que funcionen correctamente los ejemplos de configuracin mostrados en esta
seccin, debes tener el mdulo mod_rewrite instalado y activado en el servidor.

Forzar a que todas las URL empiecen por www


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Esta configuracin funciona solamente para las URL no seguras que empiezan por
http:// :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ejemplo\.com [NC]
RewriteRule ^(.*)$ http://www.ejemplo.com/$1 [L,R=301,NC]

Esta configuracin funciona tanto para las URL seguras ( https:// ) como para las URL
normales ( http:// ):

RewriteCond %{HTTP_HOST} !^$


RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Forzar a que ninguna URL empiece por www


Esta configuracin funciona solamente para las URL no seguras que empiezan por
http:// :

RewriteEngine on

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
RewriteCond %{HTTP_HOST} ^www\.ejemplo\.com [NC]
RewriteRule ^(.*)$ http://ejemplo.com/$1 [L,R=301]

Forzar a que todas las URL sean seguras y empiecen por https
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Forzar a que todas las URL acaben con la barra /


RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Redirigir pginas individuales


Redirect 301 /pagina_antigua.html http://www.ejemplo.com/nueva_pagina.htm
l
Redirect 301 /pagina_antigua_2.html http://www.ejemplo.com/directorio/

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Redirigir todo un sitio web
Redirect 301 / http://nuevo_sitio.com/

A pesar de que esta configuracin sencilla no lo parezca, en realidad se estn


redirigiendo todos los enlaces viejos al nuevo sitio, no solo la portada del sitio.

Seguridad

Impedir cualquier acceso a un sitio web


La siguiente configuracin impide, sin excepcin, todas las conexiones a tu sitio web,
por lo que es una forma rpida de "apagarlo" y hacerlo desaparecer de Internet:

Deny from All

# en Apache 2.4, utiliza lo siguiente


# Require all denied

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Impedir cualquier acceso salvo aquellos autorizados
Order deny, allow
Deny from All
Allow from xxx.xxx.xxx.xxx

# en Apache 2.4, utiliza lo siguiente


# Require ip xxx.xxx.xxx.xxx

Sustituye xxx.xxx.xxx.xxx por la direccin IP desde la que quieres permitir el acceso al


sitio. Esta configuracin tambin soporta la definicin de rangos de direcciones IP.

Permitir todos los accesos salvo aquellos desautorizados


La siguiente configuracin es la contraria de la configuracin mostrada anteriormente,
ya que permite el acceso desde cualquier direccin IP salvo las indicadas
explcitamente:

Order deny, allow


Allow from All
Deny from xxx.xxx.xxx.xxx
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Deny from xxx.xxx.xxx.yyy

# en Apache 2.4, utiliza lo siguiente


# Require not ip xxx.xxx.xxx.xxx
# Require not ip xxx.xxx.xxx.yyy

Impedir el acceso a los archivos y directorios ocultos


Los archivos y directorios ocultos (es decir, aquellos cuyo nombre empieza con un
punto) normalmente no son pblicos, por lo que el servidor web no debera servirlos:

RewriteCond %{SCRIPT_FILENAME} -d [OR]


RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]

Entre otros, esta configuracin protege archivos como .htaccess y .htpasswd y


directorios como .git y .hg .

Si lo prefieres, tambin puedes devolver un error de tipo 404 (Not Found) para confundir
un poco ms a los atacantes:

RedirectMatch 404 /\..*$


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Impedir que se pueda acceder a archivos con contenidos sensibles
Las siguientes extensiones corresponden a los archivos que pueden contener
informacin sensible, como por ejemplo: archivos de log con informacin detallada del
servidor ( .log ), copias de seguridad creadas por editores como Vi/Vim ( .swp ),
comandos de consola ( .sh ), archivos de configuracin ( .config , .ini ), etc.

<FilesMatch "(\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>

Impedir que se pueda ver el listado de contenidos de un directorio


Options All -Indexes

Impedir que otros sitios web enlacen a tus imgenes


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
La siguiente configuracin impide que cualquier sitio web externo pueda enlazar a tus
imgenes para "robrtelas". Cambia el valor ejemplo.com por tu propio dominio, de
manera que solamente tu puedas enlazar a tus imgenes:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ejemplo.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Proteger el acceso a un directorio mediante contrasea


Primero debes crear un archivo llamado .htpasswd con el comando htpasswd . Este
archivo se debe guardar en cualquier directorio que no sea directamente accesible
mediante el servidor web:

$ htpasswd -c /home/usuario/.htpasswd nombre_usuario

Y ahora ya puedes usar este archivo para proteger con contrasea el acceso a cualquier
directorio:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
AuthType Basic
AuthName "Zona Segura"
AuthUserFile /home/usuario/.htpasswd
Require valid-user

Proteger uno o varios archivos mediante contrasea


AuthName "Zona Segura"
AuthType Basic
AuthUserFile /home/usuario/.htpasswd

<Files "archivo_secreto.zip">
Require valid-user
</Files>

<FilesMatch ^(factura\d+\.pdf)$>
Require valid-user
</FilesMatch>

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Mejorar el rendimiento

Comprimir archivos
<IfModule mod_deflate.c>

# Forzar compresin tambin para las cabeceras malformadas


# http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-g
zipping
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|
-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_
Accept-Encoding
</IfModule>
</IfModule>

# Comprimir los contenidos que sean de cualquiera de estos tipos


<IfModule mod_filter.c>
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/x-web-app-manifest+json
\
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>

</IfModule>
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Utilizar la cabecera Expires de HTTP
La cabecera Expires de HTTP indica al navegador la fecha a partir de la cual un recurso
se considera "no vlido" y debe volver a solicitarse al servidor en vez de servirse
directamente desde la cach.

La recomendacin para muchos de los archivos estticos (CSS, JavaScript, imgenes, etc.)
consiste en establecer una fecha de expiracin muy lejana (1 ao por ejemplo). No
obstante, si los nombres de los archivos no incluyen informacin sobre su versin,
entonces es mejor que la expiracin no sea tan lejana (1 semana por ejemplo).

Utiliza la siguiente configuracin para indicar la fecha de expiracin de todos los


archivos estticos habituales de las aplicaciones web:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 mo
nth"

# CSS

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
ExpiresByType text/css "access plus 1 ye
ar"

# Archivos relacionados con AJAX y Web Sockets


ExpiresByType application/json "access plus 0 se
conds"
ExpiresByType application/xml "access plus 0 se
conds"
ExpiresByType text/xml "access plus 0 se
conds"

# Favicon
ExpiresByType image/x-icon "access plus 1 we
ek"

# Componentes HTML (HTCs)


ExpiresByType text/x-component "access plus 1 mo
nth"

# HTML
ExpiresByType text/html "access plus 0 se
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
conds"

# JavaScript
ExpiresByType application/javascript "access plus 1 ye
ar"

# Manifest
ExpiresByType application/x-web-app-manifest+json "access plus 0 se
conds"
ExpiresByType text/cache-manifest "access plus 0 se
conds"

# Fotos, vdeos y audio


ExpiresByType audio/ogg "access plus 1 mo
nth"
ExpiresByType image/gif "access plus 1 mo
nth"
ExpiresByType image/jpeg "access plus 1 mo
nth"
ExpiresByType image/png "access plus 1 mo
nth"
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
ExpiresByType video/mp4 "access plus 1 mo
nth"
ExpiresByType video/ogg "access plus 1 mo
nth"
ExpiresByType video/webm "access plus 1 mo
nth"

# Canales RSS y Atom


ExpiresByType application/atom+xml "access plus 1 ho
ur"
ExpiresByType application/rss+xml "access plus 1 ho
ur"

# Fuentes web
ExpiresByType application/font-woff "access plus 1 mo
nth"
ExpiresByType application/vnd.ms-fontobject "access plus 1 mo
nth"
ExpiresByType application/x-font-ttf "access plus 1 mo
nth"
ExpiresByType font/opentype "access plus 1 mo
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
nth"
ExpiresByType image/svg+xml "access plus 1 mo
nth"
</IfModule>

Desactivar la cabecera ETag de HTTP


Eliminar la cabecera ETag de HTTP puede ser til en algunas situaciones, ya que impide
a los proxys y a los navegadores cachear los contenidos en funcin de esta cabecera. En
la prctica, esto fuerza a que los proxys y navegadores utilicen en su lugar las cabeceras
Cache-Control o Expires :

<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None

Otros trucos
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Definir opciones de configuracin PHP
Utiliza la directiva especial php_value y a continuacin, indica el nombre de la opcin y
su valor separado por un espacio:

php_value <nombre-opcion> <valor-opcion>

Este ejemplo define el tiempo mximo de ejecucin de los scripts PHP y el tamao
mximo de los archivos que se pueden subir:

# For example:
php_value upload_max_filesize 30M
php_value max_execution_time 600

Pginas de error personalizadas


ErrorDocument 400 /errores/error400.html
ErrorDocument 401 /errores/error401.html
ErrorDocument 403 /errores/error403.html
ErrorDocument 404 /errores/error404.html
ErrorDocument 500 /errores/error500.html

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Forzar a que el navegador baje un archivo en vez de mostrarlo
La siguiente configuracin hace que todos los archivos de tipo Markdown (extensin
.md ) se descarguen en vez de mostrarse dentro del navegador. Cambia la extensin .md
por la extensin de los archivos que quieres forzar que se descarguen:

<Files *.md>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>

Permitir la carga de fuentes desde diferentes dominios


Debido a las restricciones del Cross-origin Resource Sharing, es posible que algunas
fuentes servidas a travs de una CDN no funcionen en Firefox o Internet Explorer. Para
solucionarlo, utiliza la siguiente configuracin:

<IfModule mod_headers.c>
<FilesMatch "\.(eot|otf|ttc|ttf|woff)$">
Header set Access-Control-Allow-Origin "*"
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
</FilesMatch>
</IfModule>

Forzar el uso de la codificacin UTF-8


# Servir contenidos de tipo text/plain o text/html usando la codificacin
UTF-8
AddDefaultCharset utf-8

# Forzar la codificacin UTF-8 en varios tipos de archivos


AddCharset utf-8 .atom .css .js .json .rss .vtt .xml

Recursos
Listado original de trucos htaccess en ingls

Comentarios
open in 6 Comentarios
browser PRO version LibrosWeb
Are you a developer? Try out the HTML to PDF API Acceder
pdfcrowd.com
6 Comentarios LibrosWeb
1 Acceder

Ordenar por los mejores


Recomendar 1 Compartir

nete a la conversacin...

Iker hace 4 meses


Hola,

He puesto como comentas el codigo

#------------- REDIRIGIMOS LA WEB DE HTTP A HTTPS


RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

y me funciona perfectamente, pero tengo una aplicacin que accede a un fichero en concreto que le tengo que dec
cuando se lance no haga la redireccin a https, que no haga nada.

Saludos y gracias
Responder Compartir

Sebastian hace 5 meses


hola,

como quito la extension de la pagina en sitios https.


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
con http me funciona, en https se me cae
Responder Compartir

Alan Toledo > Sebastian hace 3 meses


posiblemente no tengas un certificado SSL
Responder Compartir

Julio Vergara hace 6 meses


Excelente Post, muy til
Responder Compartir

Francisco Fatt Ponce hace un ao


muy buena info!! gracias por compartir
Responder Compartir

manucobos hace un ao
gracias me ha servido el de forzar https !!
Responder Compartir

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
felicitaciones, te agradezco mucho el que lo hayas
compartido, saludos!

El nuevo elemento de HTML5 para crear imgenes Cmo organizar bien un proyecto Silex
responsive 2 comentarios hace un ao
2 comentarios hace un ao Javier Eguiluz Gracias por avisar! Acabo de
Rosevelt Barahona eso tendria que ser con media corregir esos enlaces.
queries en el css.

Suscrbete d Aade Disqus a tu sitio web Privacidad

Fecha de publicacin
11 de noviembre de 2014

ETIQUETAS POPULARES

composer css diseo html javascript php programacin sistemas symfony

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
SUSCRBETE GRATIS
RSS Todos los tutoriales

RSS Tutoriales de diseo

RSS Tutoriales de programacin

3.756
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

Potrebbero piacerti anche