Lo que estas necesitando son "urls amigables" (friendly url) y esto lo logras con un archivo ".htaccess". En este archivo puedes definir reglas para que por un lado el navegador vea una "url amigable" tal como "midominio/seccion/contacto" y por otro lado el servidor vea "midominio/index.php?seccion=contacto".
Ejemplo de archiivo .htaccess :
Código:
RewriteEngine On
RewriteRule ^seccion/(.+)/id/(.+) index.php?seccion=$1&id=$2 [L,NC]
RewriteRule ^seccion/(.+) index.php?seccion=$1 [L,NC]
Explicación:
La linea con "RewriteEngine On" habilita la re-escritura de reglas (RewriteRule).
Luego aparecen dos reglas, la primera es:
Código:
RewriteRule ^seccion/(.+)/id/(.+) index.php?seccion=$1&id=$2 [L,NC]
Aquí se transforman los (.+) en variables que serán $1 y $2 en orden de aparición. Para que esta regla se ejecute la url debe empezar por "seccion/". Si la regla se ejecuta, el resto de reglas no se ejecutara gracias al "[L,NC]".
Siempre habra que poner las reglas mas restrictivas al principio.
Entonces un vez hecho esto ya podemos poner nuestros enlaces de esta forma:
Código HTML:
<a href="seccion/articulos/id/4">link</a>
y el servidor entendera que queremos ir a index.php?seccion=articulos&id=4.
IMPORTANTE:
- El archivo htaccess funciona solo en servidores Apache, asi que si tu servidor es linux perfecto pero si es un windows server que tiene IIS en vez de Apache esta solucion no servira.
- En el archivo que estemos usando la re-escritura de reglas, es decir, donde tengamos enlaces amigables (por lo general suele ser el index) debemos poner dentro de la etiqueta header
Código HTML:
<base _hr_ef="http_://ww_w.midominio.c_om/" />
<!- -QUITAR LAS BARRAS BAJAS QUE AUN NO ME DEJAN PONER URLS XD -->
que sera la base del archivo index. Si este archivo index estuviese dentro de una carpeta como "contenido" la base sería
Código HTML:
<base _hr_ef="http_://ww_w.midominio.c_om/contenido/" />
<!- -QUITAR LAS BARRAS BAJAS QUE AUN NO ME DEJAN PONER URLS XD -->