Documentos de Académico
Documentos de Profesional
Documentos de Cultura
htaccess
http://info.cdmon.com
El .htaccess (Acceso de Hiper-Texto) es el nombre por defecto del archivo de configuración de directorios de
Apache. Se utiliza para personalizar la configuración de directivas y parámetros definidos en el archivo de
configuración principal del alojamiento. Tiene una gran variedad de usos y utilidades que le pueden resultar útiles
en su web. En el siguiente tutorial le mostramos algunas de las funciones más utilizadas por el .htaccess.
Para crear un fichero .htaccess, abra el bloc de notas e introduzca el código necesario. Guarde el fichero como
fichero de texto (.txt), por ejemplo "fichero_htaccess.txt", y súbalo por FTP en la carpeta donde tiene que utilizarse.
Una vez en el servidor, modifique el nombre del fichero "fichero_htaccess.txt" por el de ".htaccess".
El .htaccess debe colocarse en el interior de la carpeta donde queremos que tenga efecto. Por ejemplo, si
queremos proteger con contraseña una carpeta llamada "privado", colocaremos el .htaccess dentro de la carpeta
"privado".
El .htaccess tiene un gran número de utilidades, en este tutorial le mostramos algunas de las utilidades más
comunes y cómo debe configurarse en el fichero .htaccess
Podemos hacer que, si por alguna razón deseamos denegar el acceso a todos los usuarios o sólo permitir a un
cierto grupo de direcciones IP para que tengan acceso a tu sitio.
Las IPs 124.34.48.165 y 102.54.68.123 son las IPs que tendrán acceso a la web.
Un uso muy común del .htaccess es impedir el acceso a algunas carpetas. Puede ser que queramos deshabilitar
1/6
Cómo utilizar .htaccess
http://info.cdmon.com
totalmente el acceso a una carpeta (por ejemplo, una carpeta con librerías de programación que se incluyen en los
archivos principales. En este caso sólo los archivos principales accederán a ellos mediante el sistema de archivos,
pero no se podrán acceder via web). Bueno, simplemente creamos un archivo .htaccess en esa carpeta que
contenga el siguiente codigo si deseamos:
<Files archivo.html>
Order allow,deny
Deny from all
Listado de carpetas
También podemos utilizar el .htaccess para mostrar el contenido de una carpeta en la estructura de directorios.
Options +Indexes
Listado de carpetas, pero no queremos que se nos muestren los iconos por defecto:
Options +Indexes
IndexOptions -FancyIndexing
IndexIgnore *
Redirigir web
RewriteEngine On
RewriteRule ^(.*)$ http://www.webaredirigir.com/$1 [R=301,L]
Si tenemos la web en una subcarpeta diferente de la carpeta "web", podemos redirigir todas las consultas a esta
subcarpeta:
RewriteEngine on
2/6
Cómo utilizar .htaccess
http://info.cdmon.com
RewriteCond % ^midominio.com\.com$
RewriteRule (.*) http://www.midominio.com/$1 [R=301,L]
RewriteRule ^$ carpeta [L]
donde:
midominio.com\.com sería, por ejemplo, cdmon\.com.com
carpeta sería, por ejemplo, wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]
RewriteCond % ^www\.midominio.com [NC]
RewriteRule ^(.*)$ http://midominio.com/$1 [L,R=301]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]
RewriteCond % ^\.midominio.com [NC]
RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301]
</IfModule>
donde:
midominoi.com podría ser, por ejemplo, cdmon.com
Si has transferido nombres de dominio o deseas redireccionar a una página específica sin que afecte a los
resultados de los motores de búsqueda como Google, utiliza el siguiente código:
Si lo que deseamos es que si alguien intenta acceder a un archivo en concreto le redirija a otro fichero, podemos
utilizar la directiva Redirect:
Si deseamos redireccionar todo nuestro sitio a una conexión segura (HTTPS), esto es muy util si por ejemplo
3/6
Cómo utilizar .htaccess
http://info.cdmon.com
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.midominio.com/$1 [R,L]
Si lo que deseamos es solo redireccionar a una conexión segura (HTTPS) una carpeta en particular en vez de
todo el sitio, por ejemplo tenemos una tienda en una carpeta aparte de nuestro sitio, hay que usar el siguiente
codigo.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} nombre_de_la_carpeta
RewriteRule ^(.*)$ https://www.midominio.com/nombre_de_la_carpeta/$1 [R,L]
Evitar el hotlinking
El hotlinking consiste en realizar un enlace directo a ficheros, generalmente imágenes y vídeos, que pertenecen a
otra web. Esta práctica consume la transferencia del sitio original de la imagen. Para evitar que nos "roben" ancho
de banda podemos configurar el .htaccess para impedir el hotlinking. RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?midominio.com/.*$ [NC]
Ahora falta la ultima linea que puede ser para prohibir que contenido no deseamos (se escoje en función de las
extensiones de los archivos) que nos cojan:
O bien esta otra regla que además muestra un archivo (no_robar_ancho_de_banda.gif que debemos haber creado
previamente) para advertir que esta imagen esta siendo cogida de nuestro site.
En la última línea ponemos las extensiones de los ficheros que queremos impedir que los enlacen.
Puedes hacer que la página indice de tu sitio a mostrar no sea la archiconocida "index". Aquí seteamos
"about.html" como página de inicio:
Esta opción sirve para evitar que la gente conozca nuestro arbol de rutas de nuestro alojamiento con ello
incrementamos la seguridad a la vez que hacemos la dirección más atractiva. En este ejemplo, quitaremos la
4/6
Cómo utilizar .htaccess
http://info.cdmon.com
El siguiente snippet no va a incrementar directamente la velocidad de carga del sitio en general, pero sí va a
cargar más rápido cuando el mismo usuario vuelva a visitarlo, al enviar un status 304 cuando se pidan elementos
que no han sido modificados. Puedes cambiar la frecuencia de cacheo al cambiar el número de segundos (en este
ejemplo se da una vez al día):
Esta opción es para aquellos que no utilizan un juego de caracteres standard reconocido por el servidor, con esta
medida evitamos mostrar el famoso error 500.
AddDefaultCharset utf-8
Una URL amigable consiste en disfrazar una URL llena de parámetros para que quede más elegante y para
ayudar también a tener una mejor posición de la página en los buscadores.
Tenemos una carpeta en nuestra web que tiene un fichero al que se le pasan parámetros.
sudominio.com/carpeta/fichero.php?id=25
Options +FollowSymLinks
RewriteEngine on
RewriteRule carpeta/(.*)/(.*).php$ /carpeta/fichero.php?id=$1
5/6
Cómo utilizar .htaccess
http://info.cdmon.com
Cuando queremos proteger una carpeta o ficheros con un usuario y contraseña, podemos utilizar, junto el
.htaccess, un .htpasswd.
usuario:Jy.Wu9Uw3b99c
Donde "usuario" es el nombre del usuario que es necesario para validarse y Jy.Wu9Uw3b99c es la contraseña
encriptada.
Para crear contraseñas encriptadas puede acceder al siguiente enlace donde puede crear el código que necesita
en su .htpasswd.
https://www.cdmon.com/webapps/
Una vez tenga el .htpasswd con el código correcto, se debe crear un fichero .htaccess con el siguiente código:
AuthUserFile /ruta/absoluta/hacia/.htpasswd
AuthName "Necesita validarse"
AuthType Basic
require user usuario
Donde en AuthUserFile es la ruta entera de donde se encuentra el .htpasswd, AuthName es el mensaje que
aparecerá en la ventana donde le solicita el usuario y la contraseña, y require user es el nombre del usuario a
introducir.
6/6