Autor Tema: Tutorial mod_rewrite  (Leído 1656 veces)

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Tutorial mod_rewrite
« en: 09 de Enero de 2008, 10:10:26 am »
Hola foro :)

Primero para los que no saben mod_rewrite es un módulo que viene con el Apache (tengo entendido que en las versiones viejas de Apache este módulo no venía integrado), y sirve para renombrar las url dinámicas. Un ejemplo ayuda:

Supongamos que tenemos una URL dinámica que transfiere datos a través de GET:
http://www.sitio.com/user.php?id=189&ok=1
Esta URL usando el mod_rewrite se podría visualizar así:
http://www.sitio.com/user/189/1
o bien así: http://www.sitio.com/user-189-1.html

Mucho mejor no ?
Esto además es mucho mejor para el posicionamiento en los buscadores, y es una técnica que se usa mucho en el mundo del SEO.
Otra ventaja es que no estan las variables de la url a la vista de todos los usuarios, osea sólo visualizarán el argumento de la variable.


Empesamos:

1- Primero hay que verificar si el mod_rewrite está activado, para eso van crean un archivo php en su servidor con el siguiente texto:
<?php phpinfo(); ?>
lo ejecutan y buscan en la informacion de apache, en Loaded modules que diga mod_rewrite.

Si está es que está activado, sino hay que activarlo desde el archivo httpd.conf en la carpeta del Apache. Busquen la siguiente línea y descomentenla (saquenle el # que aparece delante):

LoadModule rewrite_module modules/mod_rewrite.so


2- Creamos un archivo .htaccess en el directorio donde queremos renombrar la url con el siguiente texto:
Código: [Seleccionar]
#primero activamos el mod_rewrite
RewriteEngine On
#ahora creamos una regla donde reemplaza las variables pasadas a travez de GET por un directorio
RewriteRule ^archivo/([0-9]+)/?$ archivo.php?id=$1 [L]

Con esto ya tenemos la url renombrada, cada vez que entremos a http://www.sitio.com/archivo/3234/ irá a http://www.sitio.com/archivo.php?id=3234/ sin que el usuario lo note.

Como ven es muy facil!

Hoy se me ocurrio averiguar sobre el tema, ya que me parecía muy útil y nunca había tenido oportunidad de usarlo. Espero que les dea útil y que se haya entendido el tuto, cualquier cosa dejo dos links donde encontre gran parte de la info (de todas formas este tutorial es escrito 100% por mi):

AEORIS
ZONA PHP

Un saludo
8)

Comunidad PHPeros

Tutorial mod_rewrite
« en: 09 de Enero de 2008, 10:10:26 am »

Desconectado alienmaster

  • PHPer@ Fijo
  • ***
  • Mensajes: 102
  • Karma: 12
  • Sexo: Masculino
  • No dependo de nadie!!
    • Ver Perfil
    • 4cosaS
Re: Tutorial mod_rewrite
« Respuesta #1 en: 09 de Enero de 2008, 10:16:49 am »
Deberias aclarar las partes de expresiones regulares en el htaccess... No se si me expllico, pues por ejemplo que a parte de ([0-9]+) tambien esta para letras ([a-z]+), o para cualkiera (.*) etc...  pero de todas maneras  :P segjavascript:void(0);
Negritauro que el que no sepa lo k era mod_rewrite lo habrá entendido

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Re: Tutorial mod_rewrite
« Respuesta #2 en: 09 de Enero de 2008, 10:24:34 am »
El tema de las expresiones regulares es como "universal" ya que es igual para todos los lenguajes si no me equivoco, osea se usan igual en php como para este caso en el .htaccess.

Aca dejo una ayuda sobre el tema: EXPRESIONES REGULARES EN WIKIPEDIA

Saludos
8)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Tutorial mod_rewrite
« Respuesta #3 en: 09 de Enero de 2008, 10:35:31 am »
Como activar el mod-rewrite?   ::)
Debes ir a: C:\Carpeta Apache\Conf\httpd.conf
y añadir esto:
Código: [Seleccionar]
LoadModule rewrite_module modules/mod_rewrite.so

Reinicias apache y listo  :) :)


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Re: Tutorial mod_rewrite
« Respuesta #4 en: 10 de Enero de 2008, 14:09:10 pm »
Si kekoman, eso lo puse en el tutorial ;) me falto lo de reiniciar el Apache...

Un saludo
8)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Tutorial mod_rewrite
« Respuesta #5 en: 12 de Enero de 2008, 13:06:24 pm »
gracias martin  :) te has ganado un karma!  :P


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Re: Tutorial mod_rewrite
« Respuesta #6 en: 14 de Enero de 2008, 17:53:46 pm »
Un placer kekoman :P gracias
8)