Foros del Web » Administración de Sistemas » Apache »

Quitar Extensión a URL con Rewrite

Estas en el tema de Quitar Extensión a URL con Rewrite en el foro de Apache en Foros del Web. Hola muchachos estoy intentando quitar extensiones a las url, he conseguido cambiar esto: De: http://nombre.com/hola.html A: http://nombre.com/hola Si pongo http://nombre.com/hola me carga perfectamente la pagina ...
  #1 (permalink)  
Antiguo 31/05/2012, 15:07
 
Fecha de Ingreso: octubre-2010
Ubicación: Lima, Perú
Mensajes: 125
Antigüedad: 14 años, 1 mes
Puntos: 5
Pregunta Quitar Extensión a URL con Rewrite

Hola muchachos estoy intentando quitar extensiones a las url, he conseguido cambiar esto:

De:
http://nombre.com/hola.html
A:
http://nombre.com/hola

Si pongo http://nombre.com/hola me carga perfectamente la pagina hola.html, pero el problema es que si agrego un "/" me muestra error 500, y yo quisiera que con o sin "/" me cargue la web, asi:

http://nombre.com/hola
http://nombre.com/hola/

Que estos 2 link abran la web http://nombre.com/hola.html


Mi .htaccess :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [L,QSA]

Espero me puedan ayudar.
  #2 (permalink)  
Antiguo 06/06/2012, 14:28
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 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.
  #3 (permalink)  
Antiguo 28/06/2012, 08:52
 
Fecha de Ingreso: enero-2011
Ubicación: Montevideo
Mensajes: 31
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Quitar Extensión a URL con Rewrite

Muchas gracias por el código, pero he intentado de todo un poco y en mis proyectos siempre aparecen las extensiones, tengo el wamp instalado y esta el mod_rewrite activado pero nada.
Ya he leído al respecto, he probado varias cosas pero sigue sin funcionar.

Alguna sugerencia??

Gracias
  #4 (permalink)  
Antiguo 12/08/2012, 00:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Quitar Extensión a URL con Rewrite

Probá con esto
Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteBase /
  4.  
  5. # Redirije a PHP si existe.
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteCond %{REQUEST_FILENAME}\.php -f
  9. RewriteRule ^(.*)$ $1.php [L,QSA]
Algunos servers necesitan explicitar el RewriteBase

Fijate mi ejemplo
http://mr4.emprear.com/somos.php
http://mr4.emprear.com/somos
http://mr4.emprear.com/otracarpeta/algo.php
http://mr4.emprear.com/otracarpeta/algo

Funciona de las dos maneras para el mismo archivo

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

Etiquetas: htaccess, html, rewrite, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.