Foros del Web » Programando para Internet » PHP »

Puedo obligar a poner la barra ( / ) al final de una URL?

Estas en el tema de Puedo obligar a poner la barra ( / ) al final de una URL? en el foro de PHP en Foros del Web. Buenas quiero hacer que cuando alguien escriba en el navegador: http://www.misitio.com/caprteta automaticamente se reemplace la URL por: http://www.misitio.com/caprteta/ Asi como pasa en esta URL: http://www.misitio.com/caprteta ...
  #1 (permalink)  
Antiguo 09/09/2007, 12:05
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Puedo obligar a poner la barra ( / ) al final de una URL?

Buenas quiero hacer que cuando alguien escriba en el navegador:

http://www.misitio.com/caprteta

automaticamente se reemplace la URL por:

http://www.misitio.com/caprteta/

Asi como pasa en esta URL:

http://www.misitio.com/caprteta

había preguntado en el subforo de apache para tratar de hacerlo con le MODREWRITE y los .htaccess pero no hay respuesta, haber si alguien sabe hacerlo con PHP o me puede orientar un poco.

De antemano muchas gracias
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 09/09/2007, 12:45
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Pero exactamente para que necesitas forzar a barra del final? no le veo nngún objetivo a esto que quieres hacer...
  #3 (permalink)  
Antiguo 09/09/2007, 12:59
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

son dos objeivos muy claros:

1. Un cliente me lo ha solicitado :D

2. sucede que toda la información del sitio la saco de la base de datos, y uso unas reglas del MOD REWRITE para simular como si el sitio estuviera en carpetas ( URLS amigables ) entonces al escribir

http://www.misitio.com/carpeta

me arroja un error de página no encontrada, mientras que si pone

http://www.misitio.com/carpeta/

Si encuentra la URL

En realidad lo que más peso tiene es que mi cliente quiere que haga eso, y por mas que intento no lo logro.

Por eso recurri a FDW haber a quien se le ocurre una solución.
__________________
SEO en Medellin
  #4 (permalink)  
Antiguo 09/09/2007, 13:14
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

haaa, pues el cliente siempre tiene que razón...

Mucho no se del uso del ModRewrite dado a que mis servidores estan en Windows, pero no se si usaste lo basico que seria algo como esto:

Código:
      Rewriterule ^carpeta$ carpeta/ruta_del_archivo.php
entonces de esta forma si deberia de ingresar...
  #5 (permalink)  
Antiguo 09/09/2007, 13:25
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

muchas gracias por tu respuesta:

el problema no esta en la interpretacion de la regla, el problema lo tengo en que la url no puede ser interpretada cuando la ponen sin la barra ( / ) sino que cuando la pongan sin la barra debe ser redirigida a la misma URL pero con barra ( / ) al final, asi como hacen en este sitio.

http://www.awesomestart.com/supernatural

que apesar de que no tenga la barra al final la pone automatiamente.
__________________
SEO en Medellin
  #6 (permalink)  
Antiguo 09/09/2007, 14:43
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

-----------
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Última edición por bookmaster; 09/09/2007 a las 14:44 Razón: No valia lo que puse
  #7 (permalink)  
Antiguo 09/09/2007, 15:04
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

supernatural es una carpeta del directorio, por ello pone el /
lo mismo pasa con cualquier sitio de iespaña fijate
ej

usuarios.lycos.es/k9kanino

prueba ;)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #8 (permalink)  
Antiguo 09/09/2007, 15:07
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Bueno amigos finalmente he logrado solucionar mis problemas:

he tendio que leer bastante cosas en ingles ( a pesar que mi ingles es muy malo ) y lo soluione mas o menos asi

utilice el atribut [R] del mod

adicionalmente descuri que la regla no podia ser asi:

(.+) /page.php?pagina=$1

por que me daba un error sino que tenia que ser asi:

^(.+)

bueno espero que a alguien en un futuro le sea util esto,

a todos los interesados muchas gracias, si tienen preguntas no duden en hacerlas.
__________________
SEO en Medellin
  #9 (permalink)  
Antiguo 10/09/2007, 02:40
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Cita:
Iniciado por mafima Ver Mensaje
Bueno amigos finalmente he logrado solucionar mis problemas:

he tendio que leer bastante cosas en ingles ( a pesar que mi ingles es muy malo ) y lo soluione mas o menos asi

utilice el atribut [R] del mod

adicionalmente descuri que la regla no podia ser asi:

(.+) /page.php?pagina=$1

por que me daba un error sino que tenia que ser asi:

^(.+)

bueno espero que a alguien en un futuro le sea util esto,

a todos los interesados muchas gracias, si tienen preguntas no duden en hacerlas.
Mas indicado aún sería usar ^ al principio y $ al final. Hay que tener algo de cuidado con el mod rewrite, es un poco peleón.
  #10 (permalink)  
Antiguo 10/09/2007, 17:31
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Asi es Bonez, el Mod es un rollo completo, cundo arreglas algo dañas otra cosa.

kaninox, lo que dices es cierto si no me esuviera refiriendo a al Mod Rewrite, lo que hacés con el mod es simular una carpeta en el servidor aunque está realmente no exista.

El ejemplo que puse, de supernatural, no es una carpeta por que ese sitio saca toda la información de la base de datos. luego simula las carpetas haciendo uso del MOd Rewrite ( o alguna otra técnica de reesritura )

Si deseas mas información acerda del MOD en este sitio seguro la encunetras.

A todos nuevamente muchas gracias... como siempre tan atentos.
__________________
SEO en Medellin
  #11 (permalink)  
Antiguo 10/09/2007, 23:19
Avatar de Infernal  
Fecha de Ingreso: septiembre-2004
Ubicación: Tamaulipas, Mexico
Mensajes: 124
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Estuve revistando y no se si es mi pc o algo mas pero en opera, firefox y ie7 me pone automaticamente al final la barra (/), pero ya que este es un foro de php se me ocurre:

Código PHP:
$_carpeta $_SERVER["REQUEST_URI"];
$_cont strlen($_carpeta) - 1;

if(
strcmp($_carpeta{$_cont}, "/") != 0)
     
header("Location: $_carpeta/"); 
  #12 (permalink)  
Antiguo 11/09/2007, 01:33
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Cita:
Iniciado por mafima Ver Mensaje
Asi es Bonez, el Mod es un rollo completo, cundo arreglas algo dañas otra cosa.
No necesariamente, las cosas pueden hacerse bien o medio bien. Es algo loco hacer esto:
Código:
ReWriteRule ^(.+) /page.php?pagina=$1
No tienes ningún control, ahí vale casi todo. Sería mas indicado, por ejemplo, seccionar:
Código:
ReWriteRule ^(seccion1|seccion2|seccion3)$ /page.php?pagina=$1 [R,L]
Adicionalmente, en seccion1 si hace falta una paginación y tienes que pasar variales por GET:
Código:
ReWriteRule ^seccion1/[(0-9){1,2}]$ /page.php?pagina=$1&paginacion=$2 [QSA,R,L]
Cuanto más se limite, creo yo, mejor.

La R en realidad sirve para redireccionar, y eso es lo que está haciendo. Yo personalmente le pondría adicionalmente un 301, así los buscadores sabrán que la URL buena es la que acabe con la barra al final. Quedando algo así:
Código:
ReWriteRule ^(seccion1|seccion2|seccion3)$ /page.php?pagina=$1 [R=301,L]
  #13 (permalink)  
Antiguo 11/09/2007, 20:13
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

precisamente, s qeu necesito que valga casi todo, no puedo seccionar, por que la URL es del tipo

www.dominio.com/(variable)

para limitar los archvios pongo un Rewritecond.

No creo que este bien decir que este medio bien, pues es justo lo que necesito, incluso podira usar

ReWriteRule ^(.+)$ /page.php?pagina=$1

y luego en page.php ver cual es la variable $1 con el fin de incluir el archivo que necesito.

estoy de acuerdo contigo que en el momento de enfrentarse a una regla de mod rewrite, debemos de limitar la instruccion lo mas que podamos, sin embargo para este caso en particular me era imposible seccionar ( el cliente queria que parecieran carpetas dentro de la carpeta raiz, incluso no me dejó poner extensiones .htm o algo asi para limitar un poco más )

con lo del 301 tienes razón, al no ponerlo toma por defecto 302 ( movido temporalmente ) ahora ya tiene el 301.

tengo una pregunta ¿para que es el QSA?

muchas gracias nuevamente.

INFERNAL si explicas que quieres hacer, quizas podamos darte una mejor ayuda
__________________
SEO en Medellin
  #14 (permalink)  
Antiguo 12/09/2007, 02:19
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Cita:
Iniciado por mafima Ver Mensaje
precisamente, s qeu necesito que valga casi todo, no puedo seccionar, por que la URL es del tipo

www.dominio.com/(variable)

para limitar los archvios pongo un Rewritecond.

No creo que este bien decir que este medio bien, pues es justo lo que necesito, incluso podira usar

ReWriteRule ^(.+)$ /page.php?pagina=$1

y luego en page.php ver cual es la variable $1 con el fin de incluir el archivo que necesito.

estoy de acuerdo contigo que en el momento de enfrentarse a una regla de mod rewrite, debemos de limitar la instruccion lo mas que podamos, sin embargo para este caso en particular me era imposible seccionar ( el cliente queria que parecieran carpetas dentro de la carpeta raiz, incluso no me dejó poner extensiones .htm o algo asi para limitar un poco más )

con lo del 301 tienes razón, al no ponerlo toma por defecto 302 ( movido temporalmente ) ahora ya tiene el 301.

tengo una pregunta ¿para que es el QSA?

muchas gracias nuevamente.

INFERNAL si explicas que quieres hacer, quizas podamos darte una mejor ayuda
QSA, Query String Append, se usa para poder seguir pasando variables por GET. Es decir, si ahora tienes dominio.com/valor, puedes, con QSA, pasar una variable como normalmente hacemos por GET: dominio.com/valor?var=otrovalor

Por lo que dices que necesitas casi todo, pues puedes limitarlo para que solo sean letras/números, o lo que necesites,habría que mirarse las expresiones regulares.
Claro, que si el cliente te dice blanco, haylo blanco, que es el que manda.
  #15 (permalink)  
Antiguo 12/09/2007, 16:00
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: Puedo obligar a poner la barra ( / ) al final de una URL?

Bueno de nuevo muchas gracias...
hasta la próxima vez.
__________________
SEO en Medellin
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 19:17.