Foros del Web » Administración de Sistemas » Software para Servers »

¿ Os funciona este mod_rewrite en .htaccess ?

Estas en el tema de ¿ Os funciona este mod_rewrite en .htaccess ? en el foro de Software para Servers en Foros del Web. Hola, He probado este código (de .htaccess) y me sale "objeto no encontrado": Options +Indexes Options +FollowSymlinks <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} ...
  #1 (permalink)  
Antiguo 24/01/2011, 15:00
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
¿ Os funciona este mod_rewrite en .htaccess ?

Hola,

He probado este código (de .htaccess) y me sale "objeto no encontrado":

Options +Indexes
Options +FollowSymlinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .%{REQUEST_FILENAME} [L]

RewriteRule ^([a-z]{2})/(.*).php $2.php?lang=$1 [L]
</IfModule>

¿ Os funciona a vosotros ?, ¿ Hay algo mal ?

(el objetivo es generar una url tipo: www.dominio.com/es/prueba.php cuando en realidad es www.dominio.com/prueba.php?lang=es )

Un saludo !!
  #2 (permalink)  
Antiguo 25/01/2011, 08:30
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Que tal Davidj , si solamente has configurado el htaccess pero no tu codigo php, no funcionara , aca te mando un modelo de como deberia estar todo colocado para que funcione tu URL amigable.

En tu htaccess

RewriteEngine On

RewriteRule ^([a-z]+)/([a-zA-Z0-9-]+)\.php$ $2.php?lang=$1 [L]


En su pagina PHP donde se realizara los url amigables

- Colocar arriba de tu pagina, en la primera linea.

<?php
$_URL_BASE="http://".$_SERVER['SERVER_NAME']."/";
?>

- Colocar entre <head> y </head>

<base href="<?=$_URL_BASE;?>"/>

Con esto seria suficiente, pruebalo y luego mencionas que tal te ha ido, suerte
  #3 (permalink)  
Antiguo 25/01/2011, 08:59
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

funciona perfecto!! mil gracias !!

Umm, ahora me surge otra duda... como ahora lo tengo configurado solo me sirve para enmascarar la variable "lang". ¿ Como lo puedo hacer si deseo pasar también otras variables (una, dos, tres o mas..., sin tener que saber de antemano el nombre) ??

Un saludo!
  #4 (permalink)  
Antiguo 25/01/2011, 09:58
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Hola de nuevo Davidj, te recomiendo que cuando envies muchas variables lo realizes con un maximo de tres, si colocas mas de ellos seria inadecuado es por eso de ahi el nombre URL AMIGABLE.

Para enviar mas variables solo tienes que configurar de nuevo tu htaccess

Envio de dos variables

RewriteRule ^([a-z]+)/([a-z]+)/([a-zA-Z0-9-]+)\.php$ $3.php?lang=$1&var2=$2 [L]


Envio de Tres variables

RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)/([a-zA-Z0-9-]+)\.php$ $4.php?lang=$1&var2=$2&var3=$3 [L]

Pruebalo y me comunicas
  #5 (permalink)  
Antiguo 25/01/2011, 10:24
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Si pero en tu código en .htaccess cada variable tiene un nombre ¿ tengo que definir tooodas las variables url que tengo en la web en el .htaccess?.

Cuando realizamos una web con php hay momentos en que pasamos una variable url o a veces más, dependiendo del momento. Lo que busco es lo siguiente:

Que el usuario elija el idioma. Una vez realizado que en la url se muestre la carpeta correspondiente /es o /en o /fr etc.. y a partir de entonces sea como una web normal, es decir:

"www.midominio.com/es/algo.php?cantidad=20&talla=grande"

o evidentemente mejor si es asi:

"www.midominio.com/es/20/grande"

pero que pueda añadir las variables url que desee sin tener que definir el nombre en el .htaccess y podria ser solo una o varias. Tengo muchas variables url de todo tipo ¿¿ Las tengo que definir todas en el .htaccess ??

Gracias!

Última edición por davidj; 25/01/2011 a las 10:29
  #6 (permalink)  
Antiguo 25/01/2011, 10:54
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Prueba con este :


Ejemplo anterior con dos variables a enviar :

www.midominio.com/es/20/grande.php

RewriteRule ^([a-z]+)/([a-z]+)/([a-zA-Z0-9-]+)\.php$ $3.php?lang=$1&var2=$2 [L]



Cambio realizado para definir 2 variables a enviar :

www.midominio.com/es/cant-20/talla-grande/grande.php

RewriteRule ^([a-z]+)/([a-z]+)-([a-z]+)/([a-z]+)-([a-z]+)/([a-zA-Z0-9-]+)\.php$ $6.php?lang=$1&$2=$3&$4=$5 [L]
  #7 (permalink)  
Antiguo 25/01/2011, 11:24
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

No me funciona. No se si hago algo mal. LLamo a la web mediante este enlace:

<a href="es/var-1/var-2/prueba.php">enlace var2</a>

Pero una cosa..., con la sintaxis tuya tengo k insertar obligatoriamente dos variables no?, me interesaría poder añadir un numero indeterminado (1,2,3...)
  #8 (permalink)  
Antiguo 26/01/2011, 13:51
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

disculpa por la demora , puedes reemplazar este htaccess por el anterior :

RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $6.php?lang=$1&$2=$3&$4=$5 [L]

hasta todo bien pero, te dejo un detalle para que tu lo veas, si tu estas definiendo variables en tu URL AMIGABLE , como capturarias esos valores en tu pagina PHP ?.
  #9 (permalink)  
Antiguo 27/01/2011, 03:02
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Gracias por tu respuesta...

Tengo un par de dudas:

- Con el código que me facilitas, ¿ Tendría que pasar en php tres variables a la vez o podría ser solo una o dos o tres...?

- Quizá no me he explicado del todo bien, me refería poder pasar EN PHP un número indeterminado de variables por url ( 1 o 2 o 3..) y con rewriterule enmascarar dichas variables en carpetas sin tener que definirlas en dicho modrewrite..

Todo esto te lo comento por que si en una web tengo varias variables url en diferentes páginas para no tener que declarar en modrewrite todas y cada una...
  #10 (permalink)  
Antiguo 28/01/2011, 08:11
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Si estudias bien el formato o la estructura el cual esta formado el código del htaccess
seria de la sgte. manera.

Para definir una variable

RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $4.php?lang=$1&$2=$3 [L]


Para definir dos variables

RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $6.php?lang=$1&$2=$3&$4=$5 [L]


Para definir tres variables

RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $8.php?lang=$1&$2=$3&$4=$5&$6=$7 [L]


etc , etc , etc ...

Verifica bien el patron donde es cambiante, al igual tambien en la ultima parte del código y podrás agregar mas variables para tus propositos; mas fácil no puedes ser.
  #11 (permalink)  
Antiguo 28/01/2011, 16:29
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Gracias especialistaenseo !!!, funciona perfecto !!!

Oye, me estaba preguntando. ¿ Se puede crear direcciones con carpeta de idioma pero lo demas de manera normal ?, es decir:

que la URL:
"www.prueba.com/index.php?lang=es&var1=uno&var2=dos"

que sea:
"www.prueba.com/es/index.php?var1=uno&var2=dos"

¿ Se puede hacer ?

Gracias por todo!

  #12 (permalink)  
Antiguo 28/01/2011, 22:58
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Mensaje Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Cita:
Iniciado por davidj Ver Mensaje
Gracias especialistaenseo !!!, funciona perfecto !!!

Oye, me estaba preguntando. ¿ Se puede crear direcciones con carpeta de idioma pero lo demas de manera normal ?, es decir:

que la URL:
"www.prueba.com/index.php?lang=es&var1=uno&var2=dos"

que sea:
"www.prueba.com/es/index.php?var1=uno&var2=dos"

¿ Se puede hacer ?

Gracias por todo!

Si claro que se puede mi estimado, espero que te vaya bien con el aporte, si vieras todo lo que se puede hacer con el htacess.

Última edición por especialistaseo; 28/01/2011 a las 23:10 Razón: complementar
  #13 (permalink)  
Antiguo 02/02/2011, 03:06
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Me ha surgido otra duda complementaria...

Necesito que el mod_rewrite actúe solo en la página web y no en el gestor de contenidos (no hace falta). El gestor de contenidos lo tengo en la carpeta /admin.

¿ Como puedo hacer para que el mod_rewrite actue solo para la web y no para el gestor de contenidos (carpeta admin) ?

Este el es código en el .htaccess que tengo ahora:

RewriteEngine On

RewriteRule ^([a-z]+)/([a-zA-Z0-9-]+)\.php$ $2.php?lang=$1 [L]
RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $4.php?lang=$1&$2=$3 [L]
RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $6.php?lang=$1&$2=$3&$4=$5 [L]
RewriteRule ^([a-z]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9]+)-([a-zA-Z0-9]+)/([a-zA-Z0-9-]+)\.php$ $8.php?lang=$1&$2=$3&$4=$5&$6=$7 [L]

Un saludo y gracias de antemano por la paciencia!
  #14 (permalink)  
Antiguo 07/02/2011, 14:39
Avatar de especialistaseo  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 138
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Espero hayas podido solucionar el problema, saludos.
  #15 (permalink)  
Antiguo 08/02/2011, 06:31
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años
Puntos: 18
Respuesta: ¿ Os funciona este mod_rewrite en .htaccess ?

Hola especialistaseo, de momento aún no..

Provisionalmente lo que hago es poner la web en una carpeta (por ejemplo: web) y dentro un .htaccess y en la carpeta admin otro .htaccess aunque no se si se suele hacer esto de tener dos .htaccess..

Etiquetas: htaccess, servidores
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 15:07.