Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/06/2012, 14:28
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Quitar Extensión a URL con Rewrite

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3.  
  4. # Remover trailing slashes.
  5. # ejemplo  miweb.com/algo/ redirije a miweb.com/algo
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteRule ^(.+)/$ /$1 [R=permanent,QSA]
  8.  
  9. # Redirige a HTML si existe.
  10. # ejemplo  miweb.com/algo muestra contenido de miweb.com/algo.html
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteCond %{REQUEST_FILENAME} !-d
  13. RewriteCond %{REQUEST_FILENAME}.html -f
  14. RewriteRule ^(.+)$ $1.html [L,QSA]
  15.  
  16. # Redirije a PHP si existe.
  17. # ejemplo  miweb.com/algo miestra contenido de miweb.com/algo.php
  18. RewriteCond %{REQUEST_FILENAME} !-f
  19. RewriteCond %{REQUEST_FILENAME} !-d
  20. RewriteCond %{REQUEST_FILENAME}.php -f
  21. RewriteRule ^(.+)$ $1.php [L,QSA]

Pero precaución con esta regla, si tenes dos archivos de mismo nombre, ejemplo:
index.html
index.php


Va a cumplir la primera regla que coincida, asi que
index
ó
index/
te va a llevar a index.html
así que , o tenés cuidado con los nombres, o lo aplicás solo a una sola extensión dejando el 2º ó 3º bloque según lo necesites, el primero lo dejás siempre porque afecta a ambos y es para remover la /

De la misma manera si por casualidad tenes una carpeta llamada index, te va a llevar a esta y no a ninguno de los archivos (sean index.html ó index.php, da lo mismo)

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.