Foros del Web » Programando para Internet » PHP »

Modificar htaccess archivo.php?id=

Estas en el tema de Modificar htaccess archivo.php?id= en el foro de PHP en Foros del Web. Hola buenas noches.. estoy tratando de modificar los enlaces de mi web .. www.web.com/archivo.php?id=1 por www.web.com/seccion y estuve viendo varias páginas pero encontré este codigo: ...
  #1 (permalink)  
Antiguo 14/10/2014, 22:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 11 meses
Puntos: 3
Pregunta Modificar htaccess archivo.php?id=

Hola buenas noches.. estoy tratando de modificar los enlaces de mi web ..
www.web.com/archivo.php?id=1 por www.web.com/seccion y estuve viendo varias páginas pero encontré este codigo:
Código:
 <IfModule mod_rewrite.c>
# Activar RewriteEngine
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
 
RewriteRule ^(.*)$ $1.php
</IfModule>
y no entiendo que va en script_filename... dependiendo del id..el nombre cambiaria.. y el nombre del id seria tomado de una variable..alguien puede guiarme un poco?
__________________
Mi web de estética www.estarmaslinda.com.ar
  #2 (permalink)  
Antiguo 18/10/2014, 14:50
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Modificar htaccess archivo.php?id=

si archivo.php se encuentra en el root prueba con esto
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ^(.*)$ /archivo.php?id=$1 [L]

Si esta en un directorio distinto al root complementalo con RewriteCond quedando por ejemplo
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteCond %{REQUEST_URI} !=/learn/archivo.php
  3. RewriteRule ^(.*)$ /learn/archivo.php?id=$1 [L]

Última edición por ArturoGallegos; 18/10/2014 a las 14:56
  #3 (permalink)  
Antiguo 18/10/2014, 22:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 11 meses
Puntos: 3
Exclamación Respuesta: Modificar htaccess archivo.php?id=

Pero $1 de donde lo toma? osea yo quiero cambiar los links para lo que serian diferentes paneles de usuarios.. osea www.web.com/usuario1
y yo en el archivo archivo.php?id=1 tengo el nombre de usuario para ponerlo en la url.. pero no entiendo como cambiarlo... si tengo que guardar en $1 el nombre de usuario o como hago.. nunca modifique un htaccess no entiendo nada =/ y es lo ultimo que me falta para inaugurar mi web
__________________
Mi web de estética www.estarmaslinda.com.ar
  #4 (permalink)  
Antiguo 18/10/2014, 22:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 11 meses
Puntos: 3
Exclamación Respuesta: Modificar htaccess archivo.php?id=

Pero $1 de donde lo toma? osea yo quiero cambiar los links para lo que serian diferentes paneles de usuarios.. osea www.web.com/usuario1
y yo en el archivo archivo.php?id=1 tengo el nombre de usuario para ponerlo en la url.. pero no entiendo como cambiarlo... si tengo que guardar en $1 el nombre de usuario o como hago.. nunca modifique un htaccess no entiendo nada =/ y es lo ultimo que me falta para inaugurar mi web
__________________
Mi web de estética www.estarmaslinda.com.ar
  #5 (permalink)  
Antiguo 19/10/2014, 01:08
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Modificar htaccess archivo.php?id=

aquí te dejo link a la documentación, donde encontraras todo a detalle
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Y respondiendo a tu duda en la linea tienes 4 parámetros, si eres observador el primer parámetro indica que es lo que deseas hacer y el segundo es una expresión regular en este caso. ---> ^(.*)$

todo lo que este dentro de () sera el valor recogido en $1 por lo que si tu url es
web.com/usuario1 entonces internamente sera cargado el contenido de
archivo.php?id=usuario1

Aquí algo de información sobre expresiones regulares
http://www.regular-expressions.info/
y acá una herramienta que suelo usar cuando necesito crear una expresión regular.
http://regex101.com/


ahora bien, yo tomaría usuario1 como la ID o algún campo X para relacionarlo en la base de datos, pero igual tu puedes crearlo como quieras... en lugar de que la expresión regular busque cualquier valor al final de la cadena puedes buscar algo mas explicito e incluso re-dirigirlo a una url concreta (/archivo.php?id=usuario1 en lugar de /archivo.php?id=$1), aunque esto ultimo no lo recomiendo mucho.



Nota: en una expresión regular puedes buscar mas de un valor, por ejemplo
^(.*)\/\?cat=(.*)$

con lo que tendrías $1 para el primer valor en () y $2 para el segundo

Etiquetas: enlaces, htaccess, posicionamiento
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 11:55.