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
dominio.com/httpdocs/directorio2/ debe existir y tener contenido en él para que los siguientes ejemplos funcionen.
- Redirigir http://dominio.com/directorio1/ a http://dominio.com/directorio2/.Deberías seleccionar esta opción en el caso de no tener la misma estructura de archivos en ambos directorios:
Options +FollowSymLinks RewriteEngine On RewriteRule ^directorio1.*$ http://dominio.com/directorio2/ [R=301,L]
-
Redirigir http://dominio.com/directorio1/archivo.html a http://dominio.com/directorio2/archivo.htmlSelecciona esta opción si tu contenido está duplicado en los dos directorios:
Options +FollowSymLinks RewriteEngine On RewriteRule RewriteRule ^directorio1/(.*)$ http://dominio/directorio 2/$1 [R=301,L]
-
Probar los ejemplos
Crea y sube el siguiente archivo “index.html” a /directorio2 por FTP:
html
body
Mod_rewrite está funcionando 🙂
body
html
Entonces, si has seguido correctamente el primer ejemplo, visita http://dominio.com/directorio1/ en tu navegador, y si la regla de redirección está funcionando bien deberías ver el cambio de dirección URL a http://dominio.com/directorio2/, y el contenido de la página de prueba.
Si has seguido el segundo ejemplo, visita http://dominio.com/directorio1/index.html, y si la regla de redirección está funcionando bien deberías ser redirigido a http://dominio.com/directorio2/index.html y ver 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.
- 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, coincide (y sustituye) 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 tienes el mismo contenido en el nuevo directorio que había en el antiguo directorio, deja 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 en .htaccess
- [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).