Foros del Web » Administración de Sistemas » Apache »

Excluir peticiones Ajax de mi htaccess

Estas en el tema de Excluir peticiones Ajax de mi htaccess en el foro de Apache en Foros del Web. Hola foreros! Antes que nada quiero agradecerles el gran aporte a la comunidad que hacen dia a dia, siempre estoy leyendo los post, rara vez ...
  #1 (permalink)  
Antiguo 20/07/2010, 00:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta Excluir peticiones Ajax de mi htaccess

Hola foreros!
Antes que nada quiero agradecerles el gran aporte a la comunidad que hacen dia a dia, siempre estoy leyendo los post, rara vez posteo pero siempre sigo al foro muy de cerca para estar al tanto de las ultimas novedades.. sin mas GRACIAS!

Tengo un problema con un sitio que estoy desarrollando con URLs Amigables.
Tengo que hacer pasar todo el trafico o peticion por el index.php para saber a donde tengo que redirigir...
hasta ahi voy bien.


Código:
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule .* index.php [L]
El problema esta en las peticiones AJAX que tengo.
Muchos de los archivos que resuelven los ajax estan dentro de include/processAjax
Probé de incluir en ese directorio un .htaccess vacio y tambien uno con RewriteEngine off pero no anduvo.

El problema es que por ejemplo un lightbox que tengo que se carga via ajax, me devuelve el index.php.

Tambien hay otros archivos que estan en la raiz del sitio que no deberia incluirlos en mi regla.
Como puedo hacer esas excepciones?

No son mas de 5 o 6 con lo cual, si bien no es una buena practica, podria excluirlos harcodeando el nombre si es que se puede, pero no se como.

Gracias de antemano por la ayuda!

Saludos a todos!!!!
  #2 (permalink)  
Antiguo 20/07/2010, 08:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Excluir peticiones Ajax de mi htaccess

Es extraño, porque si es un archivo válido, las reglas que estás usando de por sí ya lo excluye. ¿No será que el nombre de archivo al que haces la petición está mal escrito?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/07/2010, 09:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Excluir peticiones Ajax de mi htaccess

Hola David, gracias por responder.

No, hice triple checkeo y la peticion es correcta.
Ademas, todos mis ajax me devuelven el index.php no es uno solo

Seria una solucion agregar una excepcion a mi htaccess para esos archivos espeficamente? El problema tambien es que nose como se escribe la regla para excluirlos del redireccionamiento..

Gracias por la ayuda!
  #4 (permalink)  
Antiguo 20/07/2010, 09:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Excluir peticiones Ajax de mi htaccess

¿Cuál es el archivo al que haces la petición? ¿Esas son las únicas reglas de reescritura que tienes en el .htaccess?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/07/2010, 13:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Excluir peticiones Ajax de mi htaccess

Hola David nuevamente y gracias por la ayuda!

Mi htaccess es el siguiente:


Código:
Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
los JS y CSS los levanta perfecto, el tema es con los ajax que estan en
/include/processAjax/miArchivoAjax.php (ejemplo)

Esos ni siquiera me muestra la peticion en el Firebug.
La llamada al ajax la hago con prototype, en el JS no esta el error porque la misma llamada la hago sin tener el htaccess (ni las urls amigables) y anda bien.

Hay alguna manera de poner excepciones a esa regla para que me respete las peticiones AJAX? o alguna otra alternativa??

MUCHAS GRACIAS!!!
saludos!
Licho
  #6 (permalink)  
Antiguo 20/07/2010, 13:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Excluir peticiones Ajax de mi htaccess

O quizas hacer una regla "si la peticion es a un archivo .php, entonces dejar su curso normalmente"

Se podria? como seria?

gracias de nuevo !
  #7 (permalink)  
Antiguo 20/07/2010, 14:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Excluir peticiones Ajax de mi htaccess

Es que, como ya te indiqué, las condiciones que tienes (RewriteCond) de por sí ya deberían filtrar que si es un archivo válido no redirija a index.php

La petición (si realmente llega a realizarse), sí o sí debe mostrarse en el panel de red de Firebug.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 20/07/2010, 16:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Excluir peticiones Ajax de mi htaccess

Gracias David...

Resulta que despues de la caida del servidor que tuvimos hoy, pudimos arreglar el asunto.

No se bien cual fue la solucion pero ahora me aparecen las peticiones en el firebug y modificando mi codigo pude hacer que funcionen correctamente!

Resulta que en mi "url_rewrites.php" que incluyo en todos mis PHP tenia un redireccionamiento asi:

Código:
$sql = "select * from url_rewrite where url='$url_actual' ";
$r = mysql_query($sql, $conn);

if (mysql_num_rows($r)>0){//la encontro
	$rs = mysql_fetch_array($r);
	$file = $rs["file"];
	$content_id = $rs["content_id"];
	$content_table = $rs["content_table"];
	$_SESSION["vlan"] = $rs["lang"];

}else{
	header("HTTP/1.1 301 Moved Permanently");
	header("location:".$url_sitio."es");
	$_SESSION["vlan"] = "es";
	$file = "_home.php";
	$content_id = 30;
	$content_table = 'contents';
	if (!$_SESSION["vlan"]){
		$_SESSION["vlan"] = "es";
        }
}
Eso es para que cualquier cosa que no encuentre URL en la tabla de urls me la redireccione al HOME.
Por alguna razon no lo puedo hacer de esa manera porque ahi entran los ajax tambien (todavia nose porque) pero bueno....

Elimine ese redir y anduvo.

El tema era mas que nada para no tener contenido duplicado en la url sin "es" y con "es" pero bue...

MIL GRACIAS DAVIR!!
REALMENTE TE PASASTE CON LA AYUDA, TE DEJO UN SALUDO !

Licho

Etiquetas: ajax, htaccess, mod_rewrite, rewriterule
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.