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

Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Estas en el tema de Cambiar direccion - Ejemplo: contacto.php/ por contacto/ en el foro de Apache en Foros del Web. Hola, foreros: Este es mi primer mensaje en el foro de Apache. He visto algun que otro mensaje sobre el tema, tambien he visto algo ...
  #1 (permalink)  
Antiguo 18/05/2008, 11:32
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Hola, foreros:

Este es mi primer mensaje en el foro de Apache. He visto algun que otro mensaje sobre el tema, tambien he visto algo parecido en FAQ, pero no se mucho de Apache.

En mi web las paginas tienen extension .php . Lo que busco es ocultar la extension de mis archivos php. Por ejemplo:

El boton enviar direcciona a contacto.php. Cuando clicas en la barra de direcciones muestra:

www.miweb.com/contacto

En realidad deberia ser:

www.miweb.com/contacto.php

¿Sabeis como ocultar la extension?, y no me digan que lo meta en una carpeta llamada contacto y llame index al archivo, jeje.

¿Como lo hago?
  #2 (permalink)  
Antiguo 18/05/2008, 11:45
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 4 meses
Puntos: 24
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Si tienes varias paginas similares, en el directorio raiz y quieres ocultar la extension en todas ellas, puedes insertar lo siguiente en el fichero .htaccess

Código:
RewriteEngine on
RewriteRule   ^(.+)$           /$1.php  [L]
Esto lo que hace es instruir a Apache para que cada vez que reciba un URL haga como si hubiera recibido esa misma url pero con la extension .php al final.
Ten en cuenta, que si tienes subdirectorios, etc, la regla se va a a aplicar igual. Si no quieres hacer el cambio cuando hay subdirectorios, la regla que he puesto no vale, y habría que utilizar otra.

Si por en contrario quieres hacer el cambio solo para la página contacto.php, la regla sería así:
Código:
RewriteEngine on
RewriteRule   ^contacto$           /contacto.php  [L]
__________________
Grupos de Música
Pop Music Stars
  #3 (permalink)  
Antiguo 18/05/2008, 13:12
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Hola de nuevo:

Lo he probado pero no me funciona niguno de los codigos que me has escrito Aloqui. Lo he copiado en un .htaccess dentro del servidor, y lo que ocurre es que me da un error de pagina no encontrada escribiendo cualquier cosa, con o sin .php .

¿QUE HAGO?
  #4 (permalink)  
Antiguo 18/05/2008, 15:18
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 4 meses
Puntos: 24
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Si usas el segundo ejemplo (solo para la página contacto), cuando escribes en el navegador:
www.miweb.com/contacto. Dices que te da error de página no encontrada.
¿ Cual es la página que no encuentra ?. Hay que fijarse en esos detalles puede son los que ayudan a determinar que es lo que está pasando: si no está haciendo ninguna redirección, si la redirección es errónea, etc.
__________________
Grupos de Música
Pop Music Stars
  #5 (permalink)  
Antiguo 31/05/2008, 13:13
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

prueba con este

Cita:
RewriteEngine On
RewiteBase /
RewriteRule ^contacto$ /contacto.php [L]
La segunda linea es la carpeta base donde está tu web, ejemplo en el localhost podés tener tu web en la carpeta miweb, entonces / cambias por /miweb/, en caso de que lo tengas en un hosting lo más lógico será que esté en la raíz, además si haz utilizado direcciones relativas para las imágenes,hacer referencias a los css y javascripts, entonces utiliza la etiqueta base antes de estas referencias, caso de haber utilizado direcciones absolutas no es necesario.


Nota: la tercera línea es cuando quieres convertir solo contacto.php si quieres hacerlo todas tus páginas entonces será^([a-zA-Z0-9]+)$, con esto digo que solo aceptaré direcciones que contengan letras (May y Min) números.

espero te sirva

Última edición por argy; 31/05/2008 a las 13:23
  #6 (permalink)  
Antiguo 31/05/2008, 18:52
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 17 años, 7 meses
Puntos: 5
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

buenas, tengo problema similar, que me llevo a este post, quisiera renombrar un achivo /rss.xml , se puede renombrar a /rss/ ? ( o sea cuando entran a /rss/ vean el contenido de /rss.xml )

escribi esto en el .htaccess pero no funcionó

RewriteEngine On
RewiteBase /
RewriteRule ^rss$ /rss.xml [L]

saludos
  #7 (permalink)  
Antiguo 01/06/2008, 01:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Creo que lo que pasa es que tienes dos errores:
- En la regla no has incluido la barra del final.
- Has puesto RewiteBase en lugar de RewriteBase

Prueba lo siguiente:

Código:
RewriteEngine On
RewriteBase /
RewriteRule ^rss\/$ /rss.xml [L]
Y si te sigue sin funcionar, dinos cual es el error que te da: "error 404 de /rss/", "Error 501", etc.
__________________
Pop & Rock Bands
Pop Music Stars
  #8 (permalink)  
Antiguo 01/06/2008, 03:29
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 17 años, 7 meses
Puntos: 5
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

OOsiete, muchas gracias

copié esto en el .htaccess

RewriteEngine On
RewriteBase /blog/
RewriteRule ^rss\/$ /rss.xml [L]

la direccion /blog/rss/ muestra un error 404......
  #9 (permalink)  
Antiguo 01/06/2008, 03:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

Yo nunca he utilizado un RewriteBase distinto de "/" por lo que no estoy seguro, pero creo que usar "RewriteBase /blog/" se usaría para cuando estás definiendo un fichero .htaccess de un subdirectorio determinado y su nombre fisico no coincide con el de la URL (en tu caso el subdirectorio blog).

Yo creo que en tu caso no lo necesitas, prueba ésto:

Código:
RewriteEngine On
RewriteBase /
RewriteRule ^blog\/rss\/$ /rss.xml [L]
Creo que incluso la linea del RewriteBase tampoco la necesitas.
__________________
Pop & Rock Bands
Pop Music Stars
  #10 (permalink)  
Antiguo 01/06/2008, 15:17
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 17 años, 7 meses
Puntos: 5
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

hola,
pegué esto en el .htaccess que esta en la raíz del dominio,

RewriteEngine On
RewriteRule ^blog\/rss\/$ blog/rss.xml [L]

con estas variantes:
RewriteRule ^blog\/rss\/$ /blog/rss.xml [L]
RewriteRule ^blog\/rss\/$ http://dominio/blog/rss.xml [L]

pero no hay suerte : (
  #11 (permalink)  
Antiguo 02/06/2008, 16:21
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

y en /blog/ no hay algún .htaccess que capture la uri /blog/rss/ ?
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #12 (permalink)  
Antiguo 02/06/2008, 20:52
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 17 años, 7 meses
Puntos: 5
Respuesta: Cambiar direccion - Ejemplo: contacto.php/ por contacto/

hola j_aroche, gracias por la respuesta,,,

encontré esta solución:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^rss/?$ /blog/rss.xml [L]

creo que faltaba el signo de ? solamente

Saludos

Última edición por punk567; 03/06/2008 a las 08:49
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 21:24.