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

htaccess doble rewrite

Estas en el tema de htaccess doble rewrite en el foro de Apache en Foros del Web. Hola foreros, He sacado del foro este código que me viene de perlas para redirigir a usuarios: Código: ErrorDocument 404 /error.php RewriteEngine on RewriteBase / ...
  #1 (permalink)  
Antiguo 20/12/2009, 03:40
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 21 años, 6 meses
Puntos: 3
htaccess doble rewrite

Hola foreros,

He sacado del foro este código que me viene de perlas para redirigir a usuarios:

Código:
ErrorDocument 404 /error.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d

ReWriteRule ^([a-z0-9A-Z]+)/?$ opcion1.php?id=$1 [L]
El asunto es que quería saber si es posible programar una segunda opción, es decir, que si no encuentra nada en la página opcion1.php ?id=$1 que se vaya a la otra opcion2.php?id=$1 [L]

He probado añadiendo al código otro similar pero se me queda en el primero, quedaría algo así:

Código:
ErrorDocument 404 /error.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d

ReWriteRule ^([a-z0-9A-Z]+)/?$ opcion1.php?id=$1 [L]

ErrorDocument 404 /error.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d

ReWriteRule ^([a-z0-9A-Z]+)/?$ opcion2.php?id=$1 [L]
¿Alguna idea?

¡muchas gracias!
  #2 (permalink)  
Antiguo 20/12/2009, 06:54
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 9 meses
Puntos: 25
Respuesta: htaccess doble rewrite

y eso por que no lo haces directamente en tu archivo de php?

if else

y le vas aumentando hasta que arroje un valor... creo que seria más lógico, si muestras tu code podemos ayudarte.
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 20/12/2009, 11:12
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 21 años, 6 meses
Puntos: 3
Respuesta: htaccess doble rewrite

Hola Urgido, gracias por tu respuesta.

El asunto es que, como decía, tengo dos tipos de páginas, y para ambas quiero utilizar las url amigables.

Tengo la página opcion1.php que carga un tipo de páginas (digámosle equipos) y la opcion2.php (digámosle jugadores).

Entonces quiero que tanto los equipos como los jugadores tengan su url amigable del tipo:
Equipo: www.midominio.com/atleticoJava
Jugador: www.midominio.com/johnniecerebrito

Y así con todos.

Cada página tiene su plantilla propia y su tabla en la base de datos por lo que no se puede utilizar una página única para todos.

Quiero que conserve la misma dirección en la barra de navegación.

He programado en el htaccess que se entre por opcion1.php, chequé si hay un equipo con la url amigable en la base de datos y si la hay que cargue su página, y si no la hay que chequeé en la tabla de jugadores y si existe cargue la ficha correspondiente al jugador.

Esto lo hago con este código:

Código PHP:
if($num==0){
    if(!
is_numeric($x)){
        
header("location: http://www.midominio.com/" $x);
        exit;    
    }else{
        
header("location:opcion2.php?id=" $x);
        exit;    
    }

$num = número de registros extraidos de la tabla de equipos, si no hay registros redireccionaría a la página de los jugadores
$x = valor de la url amigable

Pero la línea del header me provoca un bucle infinito, me da error de redireccionamiento, cosa lógica por cierto... y la verdad que no sé cómo atacarlo.

Muchas gracias!!
  #4 (permalink)  
Antiguo 20/12/2009, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Apache
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 20:34.