Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2013, 15:02
Avatar de ramiro_md
ramiro_md
 
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Urls amigables

Buenas, soy un novato total en lo que configuración del .htaccess se refiere.

Hoy dispongo de un dominio en el cual, si se accesa hoy por hoy redirige a dominio.com.ar/construct/.

Pero tengo otra carpeta, dominio.com.ar/owner/, protegida con clave donde esta el proyecto web en si. Es para que el cliente vaya viendo los avances.

El proyecto consta de 5 páginas (inicio,nosotros,contacto,fotos,servicios). Las tres primeras no tienen nada raro, pero para servicios y fotos utilizo parametros en la URL.

Por ejemplo:
Cita:
dominio.com.ar/owner/servicios.php?servicio=un_servicio
dominio.com.ar/owner/fotos.php?pagina=1
Lo que busco es lograr ocultar la extension php de la url:
Cita:
dominio.com.ar/owner/index
dominio.com.ar/owner/contacto
dominio.com.ar/owner/nosotros
Y a su vez limpiar un poco los parametros URL de la siguiente forma:
Cita:
dominio.com.ar/owner/servicios/un_servicio
dominio.com.ar/owner/fotos/1
A priori, logré este .htacces:
Código Apache:
Ver original
  1. Options -Indexes
  2. Options -Multiviews
  3.  
  4. RewriteEngine on
  5.  
  6. # Ocultar extension php
  7. RewriteCond %{REQUEST_FILENAME}\.php -f
  8. RewriteRule ^(.*)$ $1.php
  9.  
  10. # Url amigable
  11. RewriteBase /
  12. Rewriterule ^owner/servicios/(.+)/$ owner/servicios.php?servicio=$1

Funciona más o menos. Las extensiones quedan ocultas, pero hay algunos detalles:

1) Si acceso a contact,index o nosotros sin barra final (dominio/owner/xxxx) funciona, en cambio si lo acceso con la barra final (dominio/owner/xxx/) falla con error interno (500).

2) Servicios funciona bien con este patron "dominio/owner/servicios/servicio_uno/", pero el valor que toma $_GET['servicio'] es: "servicio_uno/.php/servicio_uno". A su vez, si le acceso sin la barra final tira error 500.

Alguna idea ?.