Comunidad de diseño web y desarrollo en internet online

PROBLEMA CON .htaccess

Citar            
MensajeEscrito el 05 Jun 2012 07:31 pm
Hola… mi problema es el siguiente :

Estuve usando una configuración simple para el .htaccess, en donde indicaba que si no se encontraba la página (Error 404 y 500) me redireccione al index.htm y me funciona perfecto.

Pero ahora estoy usando el RewriteRule para crear Url amigables… lo cual me a funcionado.

De esto :
http://www.mipagina.com/eventos.php?id=4547

A esto :
http://www.mipagina.com/eventos/4547

El problema viene si se ingresa una dirección que no existe .

Por ejemplo :
http://www.mipagina.com/eventos/4547656545

suponiendo que el código 4547656545 no existe. El navegodor me da el mensaje que se esta creando un bucle infinito y no me muestra la pagina…

pero me muestra esta dirección en la barra :
http://www.mipagina.com/eventos/eventos.php

este es mi código del .htaccess

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
ErrorDocument 404 /index.htm
ErrorDocument 500 /index.htm
RewriteRule ^eventos/(.*)?$ eventos.php?id=$1 [L]

y la direccion la paso asi :
<a href="eventos/<?php echo $id; ?>">

MUCHAS GRACIAS POR LA AYUDA...

Por zonarock

65 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 06 Jun 2012 01:38 pm
Es eventos.php quien tiene que encargarse de generar el código HTTP 404 cuando se intenta cargar un contenido que no existe. El .htaccess no te va a servir para esto porque no puedes determinar que un ID no existe, solo eventos.php puede hacerlo.

Para generar la cabecera apropiada puedes ejecutar:

Código PHP :

header("HTTP/1.1 404 No encontrado");

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 06 Jun 2012 05:25 pm

DriverOp escribió:

Es eventos.php quien tiene que encargarse de generar el código HTTP 404 cuando se intenta cargar un contenido que no existe. El .htaccess no te va a servir para esto porque no puedes determinar que un ID no existe, solo eventos.php puede hacerlo.

Para generar la cabecera apropiada puedes ejecutar:

Código PHP :

header("HTTP/1.1 404 No encontrado");


No me funciono. Pero has hecho que me diera cuenta por donde venía el problema.

Yo lo hacia asi :
header("Location: eventos.php");

solo tuve que agregar la ruta completa, así :

$rutaserver = 'http://www.mipagina.com/';
header("Location: $rutaserver".'eventos.php');

Y listo… problema resuelto, gracias por la ayuda broder.

De pasada tengo otra, pregunta
¿Es cierto que las url amigables consumen mucho recursos? Sea lo que sea que eso significa… XD

E visto foros, en donde dicen que si usas muchas urls de este tipo se lentea la pagina…
¿Es cierto eso...?

Gracias

Por zonarock

65 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 07 Jun 2012 12:14 pm
Sí, es cierto. Pero la cuestión no es si consumen o no recursos, sino en qué medida y si los beneficios compensan ese consumo.

El hecho de que el servidor web tenga que parsear y evaluar expresiones regulares ya es un consumo de recursos mayor que si no tuviera que hacerlo (y cuantas más expresiones regulares le pongas en el .htaccess, más recursos se consumirán, obvio), pero en muchos casos el beneficio que se obtiene supera con creces esa pérdida de recursos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 Jun 2012 06:40 pm
Ok...ahora entiendo mejor...
Gracias por la ayuda broder,

Por zonarock

65 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.