¡Hola a todos!
Estoy desarrollando una página web en un directorio local:
http://localhost/empresa/ (/var/www/empresa/)
El caso es que me han pedido que tenga URLs amigables y me he puesto manos a la obra. La idea es que /clientes/ lleve a /clientes.php, /mapa/ lleve a /mapa.php y /servicios/gestion/ lleve a servicios.php?servicio=gestion
Mirando en tutoriales, foros y tal cree el siguiente .htacces en /var/www/empresa/
RewriteEngine on
RewriteRule ^servicios/([a-zA-Z0-9]+)/?$ servicios.php?seccion=$1 [L]
RewriteRule ^([a-zA-Z0-9]+)/?$ $1.php [L]
El caso es que al poner http://localhost/empresa/servicios/prueba/ lleva a servicios.php, sin variables get.
Probé a cambiar servicios.php por servicioss.php (nombre de fichero y reglas) y http://localhost/empresa/servicios/prueba/ si lleva a servicioss.php?seccion=prueba por lo que la regla sí funciona cuando se activa.
Probé a quitar la regla RewriteRule ^([a-zA-Z0-9]+)/?$ $1.php [L] y http://localhost/empresa/servicios/ sigue llevando a servicios.php y http://localhost/empresa/servicios/prueba/ sigue llevando a servicios.php sin variables get.
Como conclusión saco que en algún sitio debe haber alguna regla o algo que diga que cuando tenemos una ruta /palabra/foo/bar/ , si la carpeta palabra no existe, busque palabra.php o palabra.html y me lleve allí, pasando de las reglas que yo he puesto en el .htaccess.
Uso ubuntu 11.04, con Apache 2.2.17 y php 5.3.5.
¿Alguien me echa una mano?