[mod_rewrite] Esta regla no me funciona en linea, pero en localhost si !

Iniciado por Diabliyo, 19 Julio 2013, 01:31 AM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Buen dia.

Tengo una "RewriteRule" que no me funciona online, pero si en mi localhost.

La regla es:
RewriteRule ^descargar/(.+)/(.+)\-(.+)\.html$ descargar.php?id=$1&file_id=$2

Tanto en mi localhost como en mi web enlinea tengo el archivo descargar.php en la raiz del sitio, pero el resultado es distinto :(

En mi localhost, se descarga el archivo.
En mi sitio web en linea no se descarga el archivo, me manda a esta url: http://core.miweb.com/descargar/index.php

Ya verifique el enlace en el localhost y en la web, y estan generados igual (bien):

En mi Web:
<a href="http://core.miweb.com/descargar/facturacion/97879-Elarchivo.html">Descargar</a>

En mi localhost:
<a href="http://localhost/descargar/facturacion/97879-Elarchivo.html">Descargar</a>

Sera por que en mi web, el sitio esta en subdominio y en mi local en dominio raiz ?

Sobre las reglas, en el localhost las tengo escritas en un htacces dentro del public_html, pero en mi Sitio Web las tengo en la configuracion del VirtualHost del subdominio http://core.miweb.com.

Saludos !

Diabliyo

He verificado y la razon del porque me carga http://core.miweb.com/descargar/index.php es porque en cierta parte del codigo cuando no se detectan las variables $_GET que deseo, hago llamada con header() a index.php.

Pero aqui surge un inconveniente, porque no se estan enviando las variables $_GET ????

Vaya, el archivo descargar.php es llamado, pero no se pasan las variables $_GET que se indican en la regla:

RewriteRule ^descargar/(.+)/(.+)\-(.+)\.html$ descargar.php?id=$1&file_id=$2

No pasa la variable $_GET["id"] y mucho menos la de $_GET["file_id"].

En el archivo descargar.php comente la linea del header( "Location: index.php"); para ver que sucedia, y puse un print_r($_GET); y me da:

Array()

Y en la URL tengo: http://core.miweb.com/descargar/facturacion/0980989-Factura.html

Que sera ???

Diabliyo

Mas o menos asi esta el archivo descargar.php:

Código (php) [Seleccionar]
<?php
session_start
();

if( 
is_array($_GET["file_id"]) || !$_GET["file_id"] ) # error
          
{
          
print_r($_GET);
          
# header( "Location: index.php" );
          
}
else
          {
          
# hace algo con la variable $_GET["flie_id"]
          # genera PDF
          
}
?>


Resultado: Array()

el-brujo

CitarSera por que en mi web, el sitio esta en subdominio y en mi local en dominio raiz ?

Eso parece

CitarSobre las reglas, en el localhost las tengo escritas en un htacces dentro del public_html, pero en mi Sitio Web las tengo en la configuracion del VirtualHost del subdominio http://core.miweb.com.

Pues pon la reglas de rewrite dentro de un htaccess en el vhost correspondiente o directamente en el public_html del subdominio.

Debes tener un subdominio (vhost) pero el vhost por defecto debe ser otro.