trucos y ejemplos de configuración del archivo htaccess de apache
Post on 01-Mar-2018
220 Views
Preview:
TRANSCRIPT
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
1/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 1/8
Trucos y ejemplos de configuracin del archivo htaccess
de Apache
Este artculo recopila los trucos y ejemplos de configuracin ms tiles para el arhivo .htaccessdel
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
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 onRewriteCond %{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} /+[^\.]+$
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
2/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 2/8
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Redirigir pginas individuales
Redirect 301 /pagina_antigua.html http://www.ejemplo.com/nueva_pagina.html
Redirect 301 /pagina_antigua_2.html http://www.ejemplo.com/directorio/
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
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.xxxpor 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
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
3/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 3/8
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 .htpasswdy 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 /\..*$
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.
Order allow,deny
Deny from all
Satisfy All
Impedir que se pueda ver el listado de contenidos de un directorio
Options All Indexes
Impedir que otros sitios web enlacen a tus imgenes
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:
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
4/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 4/8
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 .htpasswdcon 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:
AuthType Basic
AuthName "Zona Segura"AuthUserFile /home/usuario/.htpasswd
Require validuser
Proteger uno o varios archivos mediante contrasea
AuthName "Zona Segura"
AuthType Basic
AuthUserFile /home/usuario/.htpasswd
Require validuser
Require validuser
Mejorar el rendimiento
Comprimir archivos
# Forzar compresin tambin para las cabeceras malformadas
# http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushingbeyondgzipping
SetEnvIfNoCase ^(AcceptEncodXng|XceptEncoding|X{15}|~{15}|{15})$
^((gzip|deflate)\s*,?\s*)+|[X~]{4,13}$ HAVE_AcceptEncoding
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
5/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 5/8
RequestHeader append AcceptEncoding "gzip,deflate" env=HAVE_Accept
Encoding
# Comprimir los contenidos que sean de cualquiera de estos tipos
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.msfontobject \
application/xfontttf \
application/xwebappmanifest+json \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/xicon \
text/css \
text/html \
text/plain \
text/xcomponent \
text/xml
Utilizar la cabecera Expiresde HTTP
La cabecera Expiresde 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:
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
6/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 6/8
# Archivos relacionados con AJAX y Web Sockets
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# Favicon
ExpiresByType image/xicon "access plus 1 week"
# Componentes HTML (HTCs)
ExpiresByType text/xcomponent "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# JavaScript
ExpiresByType application/javascript "access plus 1 year"
# Manifest
ExpiresByType application/xwebappmanifest+json "access plus 0 seconds"
ExpiresByType text/cachemanifest "access plus 0 seconds"
# Fotos, vdeos y audio
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Canales RSS y Atom
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
# Fuentes web
ExpiresByType application/fontwoff "access plus 1 month"
ExpiresByType application/vnd.msfontobject "access plus 1 month"
ExpiresByType application/xfontttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
Desactivar la cabecera ETagde HTTP
Eliminar la cabecera ETagde 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
-
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
7/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 7/8
proxys y navegadores utilicen en su lugar las cabeceras CacheControl o Expires:
Header unset ETag
FileETag None
Otros trucos
Definir opciones de configuracin PHP
Utiliza la directiva especial php_valuey a continuacin, indica el nombre de la opcin y su valor separado
por un espacio:
php_value
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
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 .mdpor la extensin de los archivos que
quieres forzar que se descarguen:
ForceType application/octetstream
Header set ContentDisposition attachment
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
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing -
7/25/2019 Trucos y Ejemplos de Configuracin Del Archivo Htaccess de Apache
8/8
16/6/2016 Tr ucos y ej em pl os de confi gur aci n del ar chi vo htaccess de Apache
http://l ibr osw eb.es/tutor ial /tr ucos- y- ej em pl os- de- confi gur aci on- del -ar chi vo- htaccess- de- apache/ 8/8
configuracin:
Header set AccessControlAllowOrigin "*"
Forzar el uso de la codificacin UTF-8
# Servir contenidos de tipo text/plain o text/html usando la codificacin UTF8
AddDefaultCharset utf8
# Forzar la codificacin UTF8 en varios tipos de archivos
AddCharset utf8 .atom .css .js .json .rss .vtt .xml
top related