Ver Mensaje Individual
  #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, 9 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.