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 !
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 ???
Mas o menos asi esta el archivo descargar.php:
<?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()
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.