Foros del Web » Programando para Internet » PHP »

URLS del tipo algo.com/pagina en vez de ?abrir=pagina

Estas en el tema de URLS del tipo algo.com/pagina en vez de ?abrir=pagina en el foro de PHP en Foros del Web. Hola, se que hay que utilizar el .htaccess pero no se como, como hago para que si tengo una dirección que sea: pagina.com/index.php?find=algo pueda entrar ...
  #1 (permalink)  
Antiguo 04/10/2008, 03:37
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años
Puntos: 0
URLS del tipo algo.com/pagina en vez de ?abrir=pagina

Hola, se que hay que utilizar el .htaccess pero no se como, como hago para que si tengo una dirección que sea:

pagina.com/index.php?find=algo

pueda entrar poniendo pagina.com/find/algo y para que si tengo pagina.com/index.php?find=algo&page=1 pueda entrar como pagina.com/find/algo/page/1

Tambien queria que index.php?find=algo se redirigiese a pagina.com/find/algo y asi con todo.

Muchas gracias.
  #2 (permalink)  
Antiguo 04/10/2008, 03:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: URLS del tipo algo.com/pagina en vez de ?abrir=pagina

Hola

Busca informacion sobre URLs amigables
  #3 (permalink)  
Antiguo 04/10/2008, 06:05
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: URLS del tipo algo.com/pagina en vez de ?abrir=pagina

Bueno eso se hace con una directiva de apache llamada Rewrite Rule

En el .htaccess primero lo habilitas:

Código:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
Y luego para hacer las redirecciones utilizás algo así:

Código:
RewriteRule ^find?/?([a-zA-Z0-9_]+)?/?page?/?([0-9]+)$ /index.php?find=$1&page=$2 [QSA]
Lo deberías hacer para cada url, por ejemplo find/ article/ y cosas así.

Fijate que tiene cuatro términos:

1. "RewriteRule" es la "función"
2. "^find?/?([a-zA-Z0-9_]+)?/?page?/?([0-9]+)$" es la condición que busca en la url
3. "/index.php?find=$1&page=$2" es la redirección
4. "[QSA]" son algunas configuraciones de la redirección. Fijate en la documentación que te dejé.

En la condición de búsqueda todo lo que esté entre paréntesis ( ) representa una porción variable de la URL, y lo que va adentro del paréntesis es la condición que hará válida esa variable y es muy parecido a PCRE. Vas a encontrar también los significados en la documentación.

Por ejemplo, [a-zA-Z0-9_] me dice que sean solo caracteres de la a a la z mayúscula y minúscula, dígitos del 0 al 9 y _. Si alguien ingresara "/find/hóla-la" ignoraría la regla, y eso te puede servir para filtrar un formato.

Luego todas esas variables entre paréntesis se representan en la redirección con el signo $ y el número en que aparecen, naturalmente de izquierda a derecha, 1 2 3 etc.

Espero que te sirva.

Saludos.
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 04:49.