Foros del Web » Programando para Internet » PHP »

Duda Modrewrite

Estas en el tema de Duda Modrewrite en el foro de PHP en Foros del Web. Hola, aver es que anteriormente intente implementar modrewrite en una web,y termine estropeando los links y con ellos la web. Ahora tengo una web que ...
  #1 (permalink)  
Antiguo 30/05/2009, 18:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Duda Modrewrite

Hola, aver es que anteriormente intente implementar modrewrite en una web,y termine estropeando los links y con ellos la web.

Ahora tengo una web que por ejemplo los links de cada categoria son asi:
http://mira-divx.com/index.php?g=11
Y quiero poner este codigo en un .htaccess:

Código PHP:
Options +FollowSymLinks
RewriteEngine on
Rewriterule 
^/(.*).htmlmira-divx.com/Categoria.php?g=$
Con eso ya saldrian los links asi?:

http://mira-divx.com/11.html

es que me gustaria estar seguro antes de implementarlo.

Saludos.
  #2 (permalink)  
Antiguo 30/05/2009, 18:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

Primero, escapa el caracter punto de .html:
^/(.*)\.html$

Lo segundo es que, los links no se transforman magicamente. Tienes que entonces cambiar los links de tu web, para en vez de index.php?g=11 muestren: 11.html
ModRewrite disfraza las URL, pero no las cambia automaticamente en el sitio.

Lo mejor seria crear una funcion para imprimir los links, asi cuando tengas que hacer 1 cambio, sea centralizado.
  #3 (permalink)  
Antiguo 30/05/2009, 18:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

Cita:
Iniciado por Ronruby Ver Mensaje
Primero, escapa el caracter punto de .html:
^/(.*)\.html$

Lo segundo es que, los links no se transforman magicamente. Tienes que entonces cambiar los links de tu web, para en vez de index.php?g=11 muestren: 11.html
ModRewrite disfraza las URL, pero no las cambia automaticamente en el sitio.

Lo mejor seria crear una funcion para imprimir los links, asi cuando tengas que hacer 1 cambio, sea centralizado.
No entiendo,pero los links me los genera un while, y el 11 ,lo e puesto de ejemplo, en realidad en una id.

creo q no me has entendido bien,o yo tambien es que no controlo el modrewrite.

Saludos y gracias.
  #4 (permalink)  
Antiguo 30/05/2009, 18:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

Muestrame como generas los links en tu web.
  #5 (permalink)  
Antiguo 30/05/2009, 19:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

los genero mediante un while:

Código PHP:
<?php
        
        $resGenero2
=mysql_query("SELECT idGenero ,Genero FROM genero");
          
$sqlGen="SELECT idGenero ,Genero FROM genero ORDER BY Genero ASC";
          
$ejecucion=mysql_query($sqlGen);
          
'<ul class="lii">';
          while(
$filaG=mysql_fetch_assoc($ejecucion)){
        
          echo 
'<a href="Categoria.php?g='.$filaG['idGenero'].'" title="Ver todos los videos de '.$filaG['Genero'].' "><li class="lii">'.$filaG['Genero'].'</li></a>';



        }
        
'</ul>';
        
?>
  #6 (permalink)  
Antiguo 30/05/2009, 19:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

En vez de imprimir:
Código php:
Ver original
  1. echo '<a href="Categoria.php?g='.$filaG['idGenero'].'" title="Ver todos los videos de '.$filaG['Genero'].' "><li class="lii">'.$filaG['Genero'].'</li></a>';

Imprime:
Código php:
Ver original
  1. echo '<a href="'.$filaG['idGenero'].'.html" title="Ver todos los videos de '.$filaG['Genero'].' "><li class="lii">'.$filaG['Genero'].'</li></a>';
  #7 (permalink)  
Antiguo 30/05/2009, 19:45
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

me da error :(

Not Found

The requested URL /14.html was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Options +FollowSymLinks
RewriteEngine on
Rewriterule ^/(.*)\.html$ Categoria.php?g=$1
  #8 (permalink)  
Antiguo 30/05/2009, 19:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

Trata asi:
Rewriterule ^(.*)\.html$ Categoria.php?g=$1
  #9 (permalink)  
Antiguo 30/05/2009, 20:00
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

me sigue dando el mismo error, puede ser que hostmonster no permita modrewrite?
  #10 (permalink)  
Antiguo 30/05/2009, 20:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

Creo que entonces mostraria un error 500.

Verifica que se esta imprimiendo en el navegador con el bucle while. Ver > Codigo Fuente
  #11 (permalink)  
Antiguo 30/05/2009, 20:08
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

error mio, ya me funciona,pero ahora me interesaria ,que en vez de que tenga la ID.html que tenga el nombre del genero, osea el texto que alla en el campo Genero de la tabla genero que corresponda a su respectiva ID.

gracias por todo.
  #12 (permalink)  
Antiguo 30/05/2009, 20:15
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda Modrewrite

Entonces, en vez de imprimir $filaG['idGenero'], tienes que imprimir el nombre del genero.
Pero tendras que hacer cambios en tu script Categorias.php, para que, en vez del ID, busque en la tabla por nombre.
  #13 (permalink)  
Antiguo 30/05/2009, 20:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

Uff,ahi si que me he perdido, he imprimido el nombre del genero y estoy intentando hcer los cambios, pero no entiendo, entonces ya no envio la id por get?

Código PHP:
    if(isset($_GET['g']) && !empty($_GET['g'])){
        
$q.='&g='.$_GET['g'];
    if(empty(
$consulta)){
        
$consulta=" Genero=".$_GET['g'];
    }else{
        
$consulta.=" AND Genero=".$_GET['g'];
    }

}
if(!empty(
$consulta)){
    
$consulta=" WHERE ".$consulta;

}
$sql="SELECT Titulo FROM peliculas $consulta";
$result=mysql_query($sql);
$TotalPelis=mysql_num_rows($result); 
me da error en $TotalPelis,y creo que es por que ya no coge la id por get??¿,me estoy aciendo 1 lio...
  #14 (permalink)  
Antiguo 30/05/2009, 21:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Duda Modrewrite

bueno lo he dejado como estaba,ya que lo que me interesaba era que saliera el nombre.html no la ID y que funcionara, ya lo intentare en otro momento.

muchas gracias Ronruby eres muy bueno.
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 18:12.