.htaccess - Ayuda para redirigir url's

Estado
No está abierto para más respuestas.

Lopezito

Piedra
Usuario de Piedra
Mensajes
44
Puntuación de reacción
0
Buenas gente.
Quisiera que me den una mano en lo siguiente:

Estoy programando un script y quiero redirigir una url que tenga gets a la forma en que se reescribe la url("enlaces amigables").

Mi .htaccess actual:

Código:
RewriteEngine On
RewriteRule ^carpeta/([^/]*)/$ /index.php?carpeta=$1 [L]

Con eso reescribi la url..

Ejemplo de lo que busco:

Yo puedo entrar desde http://miweb.com/carpeta/1 pero quiero que si alguien entra desde http://miweb.com/index.php?carpeta=1 sea redirigido a la url modificada(mencionada antes), de tal manera si o si lo mande la url "amigable".

Saludos.:p
 
Mensajes
103
Puntuación de reacción
0
Dejarma la url por /, el item 2 es el id y luego lo haces con php si la url total es distinta al patron :B
 
Mensajes
232
Puntuación de reacción
0
$url = explode('/',$_GET['carpeta']);
// tenemos un array con cada parte de los datos recibidos

$valor1 = $url[0];
$valor2 = $url[1];
$valor3 = $url[2];

una brebe explicación

1) imagina q recibes esto: http://www.miweb.com/directorio
tendras entonces:
$valor1 = 'directorio';

2) imagina q recibes esto: http://www.miweb.com/directorio/prueba
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';

3) imagina q recibes esto: http://www.miweb.com/directorio/prueba/tres
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';
$valor3 = 'tres';
 

Lopezito

Piedra
Usuario de Piedra
Mensajes
44
Puntuación de reacción
0
$url = explode('/',$_GET['carpeta']);
// tenemos un array con cada parte de los datos recibidos

$valor1 = $url[0];
$valor2 = $url[1];
$valor3 = $url[2];

una brebe explicación

1) imagina q recibes esto: http://www.miweb.com/directorio
tendras entonces:
$valor1 = 'directorio';

2) imagina q recibes esto: http://www.miweb.com/directorio/prueba
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';

3) imagina q recibes esto: http://www.miweb.com/directorio/prueba/tres
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';
$valor3 = 'tres';

Sip, habia entendido xd
Lo que quisiera es saber si no se puede hacer desde .htaccess :/

- - - Actualización- - -

$url = explode('/',$_GET['carpeta']);
// tenemos un array con cada parte de los datos recibidos

$valor1 = $url[0];
$valor2 = $url[1];
$valor3 = $url[2];

una brebe explicación

1) imagina q recibes esto: http://www.miweb.com/directorio
tendras entonces:
$valor1 = 'directorio';

2) imagina q recibes esto: http://www.miweb.com/directorio/prueba
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';

3) imagina q recibes esto: http://www.miweb.com/directorio/prueba/tres
tendras entonces:
$valor1 = 'directorio';
$valor2 = 'prueba';
$valor3 = 'tres';

Sip, habia entendido xd
Lo que quisiera es saber si no se puede hacer desde .htaccess :/
 
Mensajes
232
Puntuación de reacción
0
claro el htaccess reescribe las entradas pero lo q te puse es como leerlas despues siempre desde el archivo index

htaccess
RewriteRule ^(.+)$ index.php?id=$1 [L]

index.php
$url = explode('/',$_GET['carpeta']);

$carpeta = $url[0];
$archivo = $url[1];

// ejemplo tipo carga ficheros tipo wordpress
// compruebas q recibes datos y q es distinto a vacio(porsiacaso)
// file_exists() comprueba q existe en el servidor esa carpeta archivo
if (isset($carpeta) && ($carpeta!='') && file_exists($carpeta)) {

$leer = '/'.$carpeta;

if (isset($archivo) && ($archivo!='') && fie_exists($archivo)) {
$leer .= '/'.$archivo.'.php';
}
}

if ($leer!='') {
include($leer);
}

puedes tener esta extructura:

/index.php
/coches/
/coches/audi.php

con esto llamarias a: http://www.miweb.com/coches/audi

y el script haria un include('/coches/audi.php')
 
Estado
No está abierto para más respuestas.
Arriba