Aviso
Los ejemplos de los siguientes enlaces son proporcionados por cortesía – Clouding.io no configurará rewrite rules para sitios web individuales de sus clientes.
Instrucciones generales
- Crea un archivo de texto plano con nombre .htaccess, o añade las líneas de código del ejemplo que se adapte a tus necesidades en la parte superior de tu archivo .htaccess.
- Agrega las líneas del ejemplo apropiado para tus necesidades en el archivo .htaccess. Ten en cuenta que deberás reemplazar el texto de ejemplo con tu propia información. Es decir, deberías remplazar dominio.com con tu nombre de dominio, directorio1 con el nombre de tu directorio, archivo.html con tu nombre de archivo, etc.
- Usa tu cliente FTP para subir el archivo .htaccess al directorio, o sub-directorio, del dominio correspondiente. Si quieres que el archivo se cargue al entrar en el dominio, deberías cargar el archivo .htaccess en la raíz del alojamiento de tu dominio, que suele ser:
- /var/www/vhosts/dominio.com/httpdocs – En el caso de un servidor con Plesk
- dominio.com/httpdocs – En el caso de un alojamiento compartido
Una vez cargado el archivo, la regla de reescritura (rewrite rule) debe funcionar inmediatamente.
Aviso
Algunos Sistemas de Gestión de Contenidos (Content Management Systems o CMS), como WordPress por ejemplo, sobrescriben los archivos .htaccess con su propia configuración. En ese caso, deberías buscar la manera de hacer estos cambios desde el CMS que estés utilizando.
Ejemplo de archivo .htaccess
Aviso
El directorio /directorio1 debe ser único en la URL. Es decir que por ejemplo, la redirección no funcionaría si existiera el archivo “directorio1.html” como en la siguiente URL: http://dominio.com/directorio1/directorio1.html.
También, para que funcione la regla, el directorio directorio1 debe existir y tener contenido en el.
El siguiente archivo .htaccess de ejemplo, redirigirá http://dominio.com/archivo.html a http://dominio.com/directorio1/archivo.html:
Archivo
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} dominio.com$ [NC]
RewriteCond %{HTTP_HOST} !directorio1
RewriteRule ^(.*)$ http://dominio.com/directorio1/$1 [R=301,L]
Probar los ejemplos
Crea y sube el siguiente archivo “index.html” a /directorio1 a través de FTP:
Archivo
html
body
Mod_rewrite está funcionando 🙂
body
html
Entonces, si has seguido el ejemplo correctamente, al visitar http://dominio.com/ en tu navegador, deberías ver el cambio de dirección a http://dominio.com/directorio1/, y el contenido de la página de prueba.
Explicación del código
- Options +FollowSymLinks – es una directiva de Apache, requisito previo para mod_rewrite.
- RewriteEngine On – habilita mod_rewrite.
- RewriteCond %{HTTP_HOST} – sirve para indicar que direcciones URL queremos que vayan, y que no vayan, a través de la regla especificada
- En el primer caso queremos que la regla funcione con dominio.com
- [NC] – hace que la regla funcione con las dos versiones mayúscula y minúscula de la URL.
- ! – significa “no”, y se utiliza para que la regla no funcione, en este caso, con directorio1. Esto lo especificamos, porque no queremos reescribir una URL, que ya incluya directorio1, porque seguiría tratando de añadir directorio1 a la URL, y se convertiría en una URL infinita.
- En el primer caso queremos que la regla funcione con dominio.com
- RewriteRule – define una regla particular.
- Dentro de la regla de reescritura, la primera cadena de caracteres después de RewriteRule, define lo que la URL original parece.
- La segunda cadena después de RewriteRule define la nueva URL.
- $1 – Este caracter especial, sustituye (o indica) la parte entre paréntesis, especificada en la primera cadena. Básicamente, lo que hace es asegurar que las sub-páginas redireccionan a la misma sub-página y no a la página principal. Puedes omitirlo para redirigir a la página principal. (Si no existe el mismo contenido en el nuevo directorio que había en el antiguo directorio, deje esta expresión regular.)
Información Adicional
¿Has olvidado tu contraseña?
Puedes encontrar más detalles sobre los caracteres especiales, conocidos como expresiones regulares, en el artículo Utilizar las rewrite rules
- $1 – Este caracter especial, sustituye (o indica) la parte entre paréntesis, especificada en la primera cadena. Básicamente, lo que hace es asegurar que las sub-páginas redireccionan a la misma sub-página y no a la página principal. Puedes omitirlo para redirigir a la página principal. (Si no existe el mismo contenido en el nuevo directorio que había en el antiguo directorio, deje esta expresión regular.)
- [R=301,L] – Esta opción, realiza una redirección 301, y también deshabilita que las reglas de reescritura que estén escritas después afecten a la dirección URL (una buena idea para añadir después de la última rewrite rule).