Imagen de Ayuda dinahosting

Operaciones básicas con .htaccess

Programación








Categorías


Estás en
Inicio > Hosting > Programación > Operaciones básicas con .htaccess

Operaciones básicas con .htaccess

A continuación te enseñamos algunas de las operaciones básicas con .htaccess que puedes necesitar de forma frecuente

Cambiar la página por defecto

Se puede utilizar esta instrucción para cambiar la página por defecto, en nuestros servidores el fichero a cargar por defecto es index.html y a continuación index.php, no obstante, con esta instrucción puedes indicar cuál será el primero en cargar de izquierda a derecha.

DirectoryIndex inicio.html index.htm index.html index.php

Redireccionar el tráfico web

Si necesitas cambiar contenido de sitio en tu web, pero necesitas que los usuarios puedan seguir accediendo con la URL antigua, puedes crear la siguiente regla para redireccionar el tráfico

Redirect /antiguo.php http://sitio.com/nuevo.php

Redirección 301 manteniendo estructura de directorios

Esta redirección es especialmente útil cuando únicamente cambiamos el nombre de dominio de nuestra web y queremos que la redirección sea lo más transparente posible para los visitantes.

redirectMatch 301 ^(.*)$ http://example.com/$1

Supongamos que estamos trabajando en una web con el nombre “webantingua.com”. Con esta regla, cualquier URL de tu dominio, incluidas las que llevan la ruta a un directorio o recurso concreto de la web (por ejemplo http://webantingua.com/blog) serán redireccionadas al nuevo dominio manteniendo la estructura de la URL.

Es decir, un usuario que acceda a http://webantingua.com/blog será redireccionado a http://example.com/blog.

Redirección 301 manteniendo certificado Let’s Encrypt

Tener la web completamente redireccionada, puede provocar que las comprobaciones del certificado de Let’s Encrypt a la hora de renovarlo no se lleven a cabo, para ello podemos añadir una excepción excluyendo el directorio .well-known y evitar con ello este problema bastante habitual.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) https://dominio.com/$1 [R=301]

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/.well-known/
RewriteRule (.*) https://dominio.com/$1 [R=301,L]

Limitar los tipos de ficheros que pueden subirse a un directorio

En ciertos formularios de la web podemos solicitar al usuario la subida de ficheros como pueden ser fotos o documentados de texto con un formato concreto, una forma de asegurarse de que el fichero que nos envían es el adecuado es limitar las extensiones de ficheros que se permiten.

php_value engine off 
AddType text/plain .htm .html .shtml

Contenido dependiente del navegador

Para redirigir el contenido en función del navegador se puede utilizar el valor de User-Agent que aparece en la cabecera HTTP de las peticiones, y con el que normalmente se identifica el navegador.

Por ejemplo, las siguientes líneas colocadas en un fichero .htaccess harían que cuando un agente solicitara la página index.html se le sirviese la página index.opera.html si se identifica como Opera/*, la página index.mozilla.html si se identifica como Mozilla/*, y la página index.html en cualquier otro caso:

RewriteCond %{HTTP_USER_AGENT} ^Opera/* 
RewriteRule ^index\.html$ index.opera.html [L] 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/* 
RewriteRule ^index\.html$ index.mozilla.html [L] 
RewriteRule ^index\.html$ index.html [L]

Los asteriscos en las expresiones regulares de las directivas casan con cualquier cadena de texto. En este caso en concreto se usan para redirigir el contenido dependiendo del nombre del agente sin tener en cuenta la versión, que suele indicarse a continuación de la barra, como Mozilla/3.0, Mozilla/4.0, Mozilla/5.0, etc.

Especificar el lenguaje por defecto del server

La siguiente regla  agrega una cabecera del idioma que deseemos sin tener que usar una meta etiqueta:

# lenguaje por defecto del server 
DefaultLanguage en-US

Declarar tipos MIME específicos

En ocasiones tendremos que indicar al servidor que tipo de programa o aplicación está ligada a los ficheros con una extensión en concreto, eso se hace definiendo los MIME types. Puedes consultar un listado de los diferentes MIME types en este enlace:

# agregar mime types 
AddType application/x-shockwave-flash .swf 
AddType video/x-flv .flv 
AddType image/x-icon .ico

Forzar dominio con www

Si nos interesa que todos los usuarios vean el nombre del dominio en el navegador con www podremos usar esta regla

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

Forzar dominio sin www

Si nos interesa que todos los usuarios vean el nombre del dominio en el navegador sin www podremos usar esta otra regla

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

 Forzar https en servidores con nginx

Desde nuestro panel de control puedes forzar la navegación https siguiendo esta guía, no obstante, con esta regla también puedes hacerlo(asegúrate de no tener ambas opciones activas al mismo tiempo)

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]

Ten en cuenta que posibilidades que ofrece el fichero .htaccess son muy amplias y aquí solo se describen las operaciones más básicas con .htaccess. Si te surgen dudas sobre alguna de ellas, no dudes en contactar con nuestro equipo de soporte.

Publicado en







    Valóranos

    ¿Te ha ayudado este artículo?










    ¿Has encontrado este artículo con facilidad?










    ¿No das tu opinión sobre el artículo?