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

URL como directorios?

Estas en el tema de URL como directorios? en el foro de Apache en Foros del Web. He creado un sitio web con PHP. He intentado dejar mis URL como directorios, pero aún no logro eso. Por ejemplo tengo actualmente este tipo ...
  #1 (permalink)  
Antiguo 02/03/2011, 22:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
URL como directorios?

He creado un sitio web con PHP.

He intentado dejar mis URL como directorios, pero aún no logro eso.

Por ejemplo tengo actualmente este tipo de URL:

http://www.dominio.com/web/vista/ingresoPublicacion.php?Id=1&Ciudad=1&Comuna=17&Cat egoria=1&Subcategoria=19

Y quiero que se vea como directorios, en .htaccess he agregado esto:

RewriteRule ^web web/index.php [L]
RewriteRule ^vista web/vista/ingresoPublicacion.php [L]

Pero no sirve, no entiendo que más hacer !
  #2 (permalink)  
Antiguo 02/03/2011, 22:50
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.990
Antigüedad: 14 años, 6 meses
Puntos: 80
Respuesta: URL como directorios?

Creo que para esos casos necesitas usar RewriteCond y luego RewriteRule... algo como esto:
Nota: Esto es para que cuando entren al sitio y pongan misitio.com/cualquiercosa entre al blog de cualquiercosa
Código:
#Activamos las opciones
Options +FollowSymlinks
#Activamos el motor de rewrite
RewriteEngine on
#Tomamos la url y si viene con la palabra post entra al primer rewriterule
RewriteCond %{REQUEST_URI} post 
#tomamos los valores antes de = y despues de - 
#y los cargamos en /index.php?etapa=verBlog&name=(ACA ANTES DE =)&post=(ACA DESPUES DE -)
RewriteRule ^([a-z]+)=post-([0-9]+)$ /index.php?etapa=verBlog&name=$1&post=$2 
#Si no viene post entonces mostramos el blog
RewriteRule ^([a-z]+)$ /index.php?etapa=verBlog&name=$1
Ojo que esto lo que hace es tomar una url de tipo loquesea.com/juanitoBlog=post-40 y no cambiarle la url sino que traducirlo a index.php?etapa=verBlog&name=juanitoBlog&post=40

Ojala te sirva! Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 02/03/2011, 22:53
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Que sucede con estó????

Por ejemplo:

# //primer parámetro
RewriteEngine On
RewriteRule ^( [a-zA-Z0-9_-] +)$ users.php?user=$1
RewriteRule ^( [a-zA-Z0-9_-] +)/$ users.php?user=$1

# //segundo parámetro
RewriteEngine On
RewriteRule ^( [a-zA-Z0-9_-] +)/( [0-9] +)$ users.php?user=$1&page=$2
RewriteRule ^( [a-zA-Z0-9_-] +)/( [0-9] +)/$ users.php?user=$1&page=$2

URL Original

http://flickr.com/users.php?id=username&page=2

URL amigable

http://flickr.com/username/2

Esto es un ejemplo que vi en una página...
  #4 (permalink)  
Antiguo 02/03/2011, 23:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Por ejemplo mi página web, es una página dinámica, los usuarios publican sus anuncios y en la portada se muestran.
Los anuncios que publican los usuarios se registran en mysql, luego en la portada los muestro (obteniéndolos de MySQL ).

Ahora Por ejemplo:

En la portada muestro,

Vendo Notebook Nuevo <-- Este es un link, si el usuario hace click en el link.
Sería como esto :

http://www.dominio.com/web/vista/ingresoPublicacion.php?Id=1&Ciudad=1&Comuna=17&Categoria=1&Subcategoria=19

Entonces la duda que tengo es:
La variable Id con el contenido de 1 ósea Id=1
, esta se genera automaticamente cuando un usuario publica un aviso, pueden haber Id=43 y así constantemete.

Y en el ejemplo que puse más arriba con el archivo htaccess veo que se colocan de forma estática las variables con su contenido.

Pero el mío se va a ir generando solo, es algo imposible estar registrando de forma manual el Id=43, Id=44.. y Así... en el archivo .htaccess

No comprendo :S !!!
  #5 (permalink)  
Antiguo 02/03/2011, 23:04
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.990
Antigüedad: 14 años, 6 meses
Puntos: 80
Respuesta: URL como directorios?

Si no le pones condicion todo lo que venga en ese formato lo transfiere al otro formato... me explico:
Código:
RewriteRule ^( [a-zA-Z0-9_-] +)/( [0-9] +)$ users.php?user=$1&page=$2
Esto significa:
Todo lo que venga en misito.com/COSAUNO/COSADOS se va a convertir en:
users.php?user=COSAUNO&page=COSADOS pero solo internamente... o sea... tu debes tener una pagina users.php que obtenga la variable user y page por GET

El otro codigo es lo mismo pero si despues de COSADOS viene un / lo convierte a lo mismo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 02/03/2011, 23:12
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.990
Antigüedad: 14 años, 6 meses
Puntos: 80
Respuesta: URL como directorios?

Para que te resulte lo que quieres hacer y con el ejemplo que expones aca debes convertir tus links de esto:
Código HTML:
http://www.dominio.com/web/vista/ingresoPublicacion.php?Id=1&Ciudad=1&Comuna=17&Categoria=1&Subcategoria=19
a esto:
Código HTML:
http://www.dominio.com/web/vista/pub/1/1/17/1/19
Y tu htaccess deberia estar puesto en la carpeta vista y deberia ser algo como esto:
Código:
RewriteEngine On
RewriteRule pub/^( [0-9] +)/$ ingresoPublicacion.php?Id=$1
RewriteRule pub/^( [0-9] +)/( [0-9] +)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2
RewriteRule pub/^( [0-9] +)/( [0-9] +)/( [0-9] +)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3
RewriteRule pub/^( [0-9] +)/( [0-9] +)/( [0-9] +)/( [0-9] +)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3&Categoria=$4
RewriteRule pub/^( [0-9] +)/( [0-9] +)/( [0-9] +)/( [0-9] +)/( [0-9] +)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3&Categoria=$4&Subcategoria=$5
Algo asi quieres hacer?
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 03/03/2011, 00:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Muchas gracias por su ayuda y tiempo Marvin!

Ahora logro comprender un poco más de esto, de primera es algo dificil de entender.

he subido la página a un hosting, porqué realmente aún no logro que esto funcione, con los ejemplos que me ha dado:

miré : http://www.xn--leadomicilio-bhb.cl/web/


Cambié mi archivo .htaccess por lo que publico arriba:

Código htaccess:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3.  
  4. RewriteRule pub/^([0-9]+)/$ ingresoPublicacion.php?Id=$1
  5. RewriteRule pub/^([0-9]+)/([0-9]+)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2
  6. RewriteRule pub/^([0-9]+)/([0-9]+)/([0-9]+)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3
  7. RewriteRule pub/^([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3&Categoria=$4
  8. RewriteRule pub/^([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3&Categoria=$4&Subcategoria=$5

En mi pagina tuve este link :
Código URL:
Ver original
  1. <a href='vista/ingresoPublicacion.php?Id=".$fila[id_publicacion]."&Ciudad=".$Ciudad."&Comuna=".$Comuna."&Categoria=".$Categoria."&Subcategoria=".$Subcategoria."' class='more-link'>".$fila['titulo_publicacion']."</a>

Y lo he cambiado por esto:

Código URL:
Ver original
  1. <a href='/web/vista/pub/1/1/17/1/19' class='more-link'>".$fila['titulo_publicacion']."</a>

aún no funciona =/


Encontre una página donde creo que lo han hecho :
http://rastro.com/aviso_3216893-casa-en-iquique-5-dormitorios.html



Saludos y muchas gracias =)
  #8 (permalink)  
Antiguo 03/03/2011, 00:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

He seguido todo, pero aún no funciona =(


Yo antes pensaba que RewriteRule pub/^([0-9]+)/$ ingresoPublicacion.php?Id=$1

Lo que esta en negrita era el valor de Id=".$fila[id_publicacion]." Tal cual como se obtiene, osea

si $fila[id_publicacion] = 23;

En el archivo htaccess tenia que llevar el mismo valor, por ejemplo:

RewriteRule pub/^([0-9]+)/$ ingresoPublicacion.php?Id=$23



Se puede ver el anuncio así:

http://www.leñadomicilio.cl/web/vista/ingresoPublicacion.php?Id=1&Ciudad=1&Comuna=17&Cat egoria=1&Subcategoria=19

Última edición por ZeThito; 03/03/2011 a las 00:45
  #9 (permalink)  
Antiguo 03/03/2011, 00:45
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.990
Antigüedad: 14 años, 6 meses
Puntos: 80
Respuesta: URL como directorios?

Nop para nada... lo que pasa es que el htaccess tiene su manera de identificar las variables de otra forma... para ser mas exacto... si existe un pattern lo toma como $1, el proximo lo toma como $2 y asi sucesivamente.

Para que te funcione tienes que poner el htaccess en la carpeta vista tambien. Y si no funciona revisa el log de apache... que siempre quedan los registros de cual es el error.

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #10 (permalink)  
Antiguo 03/03/2011, 00:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Revise el log y me aparece esto:


[Thu Mar 03 04:57:04 2011] [error] [client 190.161.236.119] File does not exist: /home/kail521/public_html/web/vista/pub, referer: http://www.xn--leadomicilio-bhb.cl/web/index.php
  #11 (permalink)  
Antiguo 03/03/2011, 01:20
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.990
Antigüedad: 14 años, 6 meses
Puntos: 80
Respuesta: URL como directorios?

Ahh ok... entonces en el htaccess debes agregarle vista/pub/ antes de la pagina ingresoPublicacion.php.

Tambien trata poniendo toda la direccion con http:// y todo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #12 (permalink)  
Antiguo 03/03/2011, 09:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 2 meses
Puntos: 2135
Tema movido desde PHP a Apache
  #13 (permalink)  
Antiguo 03/03/2011, 20:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Hola de nuevo =P.

Marvin anoche estuve buscando manuales en la red y entre tanto buscar, encontré una página que te convierte tu URL dinámica a URL estática creando las reglas automáticamente para colocarlas en .htaccess

Web : http://www.seochat.com/seo-tools/url-rewriting/

Coloque mi URL :
Código URL:
Ver original
  1. http://www.leñadomicilio.cl/web/vista/ingresoPublicacion.php?Id=1&Ciudad=1&Comuna=17&Categoria=1&Subcategoria=19

Y genera esto :

Código htaccess:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteRule ingresoPublicacion-Id-(.*)-Ciudad-(.*)-Comuna-(.*)-Categoria-(.*)-Subcategoria-(.*)\.html$ ingresoPublicacion.php?Id=$1&Ciudad=$2&Comuna=$3&Categoria=$4&Subcategoria=$5

Luego lo coloque en mí archivo htaccess y cambie mi URL en mi página por:

Código PHP:
Ver original
  1. echo "<a href='/web/vista/ingresoPublicacion-Id-".$fila[id_publicacion]."-Ciudad-".$Ciudad."-Comuna-".$Comuna."-Categoria-".$Categoria."-Subcategoria-".$Subcategoria.".html' class='more-link'>".$fila['titulo_publicacion']."</a>";

Y ahora funciona muy bien :)
De todas formas aprendí los parámetros que se debe colocar en el archivo htaccess, por todos los ejemplos :D

Mi pregunta ahora es como tomar el titulo del anuncio y dejarlo como URL un ejemplo :

http://rastro.com/resultado.html?c=1

En esta página al hacer click en el titulo se direcciona a los detalles del aviso y lo mejor es que en la URL, aparece el titulo del aviso también, creo que los datos por GET son :

aviso_3225761 y luego el titulo -peugeot-partner-ano-2005.html

Bueno eso es y espero no seguir molestandolo jajaja

Saludos y muchas gracias estimado Marvin.
  #14 (permalink)  
Antiguo 03/03/2011, 20:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: URL como directorios?

Bueno compañero buscando en la red creo haber encontrado esto:

Dejo el Link :

http://www.baluart.net/articulo/urls-amigables-con-php

Lo voy aplicar y después te cuento como me va :D

Saludos

Etiquetas: directorios, php, 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 06:54.