Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/06/2005, 18:37
Avatar de Escoffie
Escoffie
 
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 21 años
Puntos: 9
Yo lo hago con un archivo .htaccess
Entiendo que hay quien opina que no se debe usar, pero no me queda muy claro porqué. Como sea lo uso, funciona, mi proveedor de hospedaje no tiene conflicto con eso y jala retelindo.

Entiendo que funciona bien para Apache e ignoro si haya algo similar para IIS

Lo que escribas en el archivo .htaccess dependerá de la configuración de tu servidor, pero en mi caso, que está bastante "estandar", la regla que hice y que funciona va más o menos así:
Código:
Options FollowSymLinks
Options SymLinksIfOwnerMatch
RewriteEngine on
RewriteRule (.+)_(.+).php /index.php?param1=$1&param2=$2
Las dos primeras líneas Options... sirven para decirle a Apache cómo va a tratar las reglas de reescritura.
La linea RewriteEngine on sirve para activar esta característica. Averigua con tu proveedor dehosting si esas tres primeras líneas quedarían así o debes poner otra cosa.
Finalmente está la línea RewriteRule que es la que hace todo el trabajo con expresiones regulares.

Básicamente el (.+)_(.+).php se traduce en hechos como dominio.com/param1_param2.php lo cual es maravilloso. Los (.+) son las posiciones que ocupará cada variable. El .+ significa que puedes escribir ahí lo que te de la gana (casi).
El /index.php?param1=$1&param2=$2 es el formato al que debe traducir la dirección para pasársela así al PHP y éste entonces recoja las variables $_GET sin problema.
Si te fijas, están los $1 y $2 en donde deberían estar los valores de los parámetros de url. Lo que esté entre el primer paréntesis (.+) lo pondrá como el valor de param1 sustituyendo $1 y lo mismo con el segundo.
Así es como funciona.

Sirve para lo mismo que el code que posteaste, pero se resuelve de otra forma. Espero que te sea de utilidad.

Saludos