Autor Tema: Ayuda - No se si es un .htaccess  (Leído 821 veces)

Desconectado G12

  • PHPer@ Fijo
  • ***
  • Mensajes: 153
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Ayuda - No se si es un .htaccess
« en: 20 de Septiembre de 2011, 00:35:49 am »
Hola a tod@s PHPerit@s.
Tengo una duda, quiero hacer que los links de mi web sean por ejemplo, si alguien quiere ir a un perfil:

www.miweb.es/perfil/G12
(Aun que el link original fuera www.miweb.es/perfil.php?usuario=G12)

No encuentro como hacerlo y me gustaria que al menos me indicarais algun sitio para buscarlo.

Comunidad PHPeros

Ayuda - No se si es un .htaccess
« en: 20 de Septiembre de 2011, 00:35:49 am »

Desconectado Marcus

  • PHPer@
  • **
  • Mensajes: 72
  • Karma: 1
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda - No se si es un .htaccess
« Respuesta #1 en: 20 de Septiembre de 2011, 00:44:45 am »

Desconectado G12

  • PHPer@ Fijo
  • ***
  • Mensajes: 153
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda - No se si es un .htaccess
« Respuesta #2 en: 20 de Septiembre de 2011, 01:05:22 am »
No comprendo muy buen el tutorial.

Desconectado Marcus

  • PHPer@
  • **
  • Mensajes: 72
  • Karma: 1
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda - No se si es un .htaccess
« Respuesta #3 en: 20 de Septiembre de 2011, 02:53:24 am »
Vale, te explico:
Primero, debes verificar si tu servidor soporta mod rewrite, en cualquier archivo php verifica con phpinfo().




En la informacion de apache verifica, como aparece en la imagen, si tu servidor soporta el mod rewrite.


Luego, abre un nuevo archivo de texto del block de notas (o cualquier procesador de textos) e inserta esto:
Código: [Seleccionar]
Options +FollowSymlinks
RewriteEngine On

Simplemente eso "activa" el mod rewrite y permite su escritura.

ahora pasemos a "disfrazar" nuestras url:

Código: [Seleccionar]
RewriteRule ^(.*)\.html$ contenido.php?ver=$1
Te explico:

RewriteRule es la instruccion que disfraza la URL.
^:  Es el comienzo de la instruccion
(.*): es el texto de "$X" (Ya te explico mejor)
\: La barra invertida simplemente hace que el punto sea tomado como texto y no como una expresion regular en la instruccion. (Si no vas a agregar un falso formato al final de la URL no es necesario)
$: Es el fin de la url falsa
contenido.php?ver=: Es la direccion real que se va a disfrazar.
$1: es, el "contenido" de (.*) (Lo siento, no puedo explicar esto en palabras mas tecnicas)

Eso es todo.

Y puedes agregar, si quieres, dos, o incluso tres, parentesis (.*). Algo asi:
Código: [Seleccionar]
RewriteRule ^(.*)/(.*)\.html$ contenido.php?ver=$1&id=$2
Lo has pillado? Es bastante sencillo.


Luego, guarda ese archivo de texto que has creado y llamalo asi: ".htaccess" y luego subelo a tu servidor.


Deberia quedar algo mas o menos asi:
Código: [Seleccionar]
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)\.html$ contenido.php?ver=$1
RewriteRule ^(.*)/(.*)\.html$ contenido.php?ver=$1&id=$2
« Última modificación: 20 de Septiembre de 2011, 02:55:09 am por Marcus »

Desconectado G12

  • PHPer@ Fijo
  • ***
  • Mensajes: 153
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda - No se si es un .htaccess
« Respuesta #4 en: 20 de Septiembre de 2011, 16:34:55 pm »
Con el codigo que me has pasado podrias entrar al archivo escribiendo:

www.miweb.com/contenido/1?
Un saludo.

Desconectado Marcus

  • PHPer@
  • **
  • Mensajes: 72
  • Karma: 1
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda - No se si es un .htaccess
« Respuesta #5 en: 20 de Septiembre de 2011, 21:35:20 pm »
Con el codigo que me has pasado podrias entrar al archivo escribiendo:

www.miweb.com/contenido/1?
Un saludo.
Si, solo debes quitar el formato .html y la ruta correcta, algo asi:
Código: [Seleccionar]
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)$ contenido.php?ver=$1
RewriteRule ^(.*)/(.*)$ contenido.php?ver=$1&id=$2
Espero haberte ayudado!
+1  :)  Muchas gracias, lo necesitaba  :P

Por nada!