Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Redirecciones cíclicas con .htaccess


Un error típico al realizar redirecciones con htaccess es crear un redireccionamiento cíclico.


28/11/06 - Nuestro manual de crear URLs amigables a buscadores con htaccess continua comentando algunos de los errores típicos que se pueden cometer a la hora de definir las reglas de redirección.

En mi experiencia con .htacces he encontrado que es fácil hacer un redireccionamiento cíclico. Es decir, definir un RewriteRule con un patrón que redirecciona a una URL que sigue cumpliendo el patrón. Como esa segunda URL concuerda todavía con el patrón, se volverá a redirigir y seguirá cumpliendo el patrón, con lo que se volverá a redirigir. Y así indefinidamente.

Al escribir una dirección del dominio que cumpla el patrón, el resultado de este problema de redirección cíclica será que Apache nos presentará un error "Internal Server Error", pero no será mucho más descriptivo, por lo que podría complicarse identificar el problema. Fijémonos en esta regla de redirección:

RewriteRule ^dir/(.+)\.php dir/codigo.php?articulo=$1

Quiere decir que cualquier URL del directorio "dir" que acabe en .php, se redirigirá a dir/codigo.php?articulo=xxx. Por ejemplo:

http://www.midominio.com/dir/loquesea.php

Se redirigirá a: http://www.midominio.com/dir/codigo.php?articulo=loquesea

Como se puede ver, la URL a la que se redirigirá cumple también el patrón, porque la URL a la que se accede también está dentro del directorio "dir" y acaba en PHP. (No se tiene en cuenta para comprobar el patrón el parámetro que se pasa por la URL)

Ese RewriteRule sería incorrecto, por padecer una redirección cíclica. Para solucionarlo podemos hacer varias cosas. Por ejemplo, redirigir a una URL que no esté dentro del directorio dir.

RewriteRule ^dir/(.+)\.php codigo-dir/codigo.php?articulo=$1

Esto funcionaría bien. La URL de antes http://www.midominio.com/dir/loquesea.php

Será redirigida hacia http://www.midominio.com/codigo-dir/codigo.php?articulo=loquesea

Otra solución que a veces he utilizado es redirigir direcciones acabadas en .html a direcciones acabadas en .php. Como las terminaciones son distintas, no habrá redirecciones cíclicas:

RewriteRule ^dir/(.+)\.html dir/codigo.php?articulo=$1

Por ejemplo, para la URL: http://www.midominio.com/dir/otracosa.html

La redirigirá a: http://www.midominio.com/dir/codigo.php?articulo=loquesea

Esta última URL, como no acaba en .html no cumplirá el patrón y no tendremos la redirección cíclica.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Editar htaccess para crear direcciones URL amigables

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Apache


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Editar htaccess para crear direcciones URL amigables
Categorías
+Apache

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia