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

Cambiar ID de url con Mod Rewrite en el htaccess

Estas en el tema de Cambiar ID de url con Mod Rewrite en el htaccess en el foro de Apache en Foros del Web. Hola a todos, sucede que no se como hacer que esta URL (que voy a usar para una página de clasificados): http:///www.mydomain.com/anuncios.php?id=1 Se convierta en ...
  #1 (permalink)  
Antiguo 07/12/2012, 19:27
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Pregunta Cambiar ID de url con Mod Rewrite en el htaccess

Hola a todos, sucede que no se como hacer que esta URL (que voy a usar para una página de clasificados):
http:///www.mydomain.com/anuncios.php?id=1

Se convierta en esta:
http:///www.mydomain.com/anuncios/1/

Y que esta:
http:///www.mydomain.com/anuncios.php?id=todo

Pase a ser algo así
http:///www.mydomain.com/anuncios/todos/

¿Alguien sabe cómo hacer esto o algún tutorial donde específicamente hablen de cómo hacer esto?, gracias de antemano
  #2 (permalink)  
Antiguo 07/12/2012, 19:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Cambiar ID de url con Mod Rewrite en el htaccess

Puedes consultar la referencia:
http://httpd.apache.org/docs/current...d_rewrite.html

O hacer una búsqueda por reescribir url.

Bienvenido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/12/2012, 23:20
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Respuesta: Cambiar ID de url con Mod Rewrite en el htaccess

Cita:
Iniciado por David Ver Mensaje
Puedes consultar la referencia:
[url]http://httpd.apache.org/docs/current/mod/mod_rewrite.html[/url]

O hacer una búsqueda por [URL="http://www.google.com/search?q=reescribir+url"]reescribir url[/URL].

Bienvenido.
Gracias por tu respuesta, estuve buscando en Google y si me sirvió, hasta encontré un post en el que le comentas otro usuario algo parecido, en el 2009 xd

Solo tengo un problema, este es mi HTACCESS actual (mi script está en un directorio llamado jalisco):
Options +FollowSymLinks
RewriteEngine on

RewriteBase /jalisco
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_URI} //+$
RewriteRule ^(.*)/$ $1/ [R,L]

RewriteRule ^(.+)/$ anuncio.php?id=$1 [NC,L]
RewriteRule ^(.+)/$ publicar.php?id=$1 [NC,L]

Yo puedo acceder a www.midominio.com/anuncio/ y www.midominio.com/anuncio/3/, pero el problema es que si pongo www.midominio.com/publicar/ o cualquier otro texto me aparece el contenido de anuncio.php (el que le puse la regla RewriteRule primero), incluso si pongo www.midominio.com/sdkjfhskgh/

¿Sabes qué es lo que pueda estar fallando?, estoy desesperado, me quedo en esta parte
  #4 (permalink)  
Antiguo 08/12/2012, 00:22
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Respuesta: Cambiar ID de url con Mod Rewrite en el htaccess

Gracias ya lo pude lograr.

Ahora puedo ir sin ningún problema a:
http://www.midominio.com/carpetaprincipal/
http://www.midominio.com/carpetaprincipal/anuncios/
http://www.midominio.com/carpetaprincipal/anuncios/2/ (o sea anuncios.php?id=2, sí toma bien el ID)

Por si le sirve a alguien este es el código:
Options +FollowSymLinks
RewriteEngine on

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php

# Force el trailing slash para que lo añada
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

RewriteRule ^anuncios/([^/\.]+)/?$ anuncios.php?id=$1 [L]

El único problema es que el index (http://www.midominio.com/carpetaprincipal) siempre redirige a (http://www.midominio.com/carpetaprincipal/) con slash al final, y aunque me gustaría que no tuviera slash al final (solo la carpeta madre) pues ya que xD

Etiquetas: css, htaccess, html, mod, mysql, php, rewrite
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 04:00.