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

Solo ejecuta la primera instruccion .htacces y mod_rewrite

Estas en el tema de Solo ejecuta la primera instruccion .htacces y mod_rewrite en el foro de Apache en Foros del Web. Hola a toda la comunidad FDW. Estoy iniciandome en el uso de mod_rewrite para generar url amigables y me surge el siguiente problema. Resulta que ...
  #1 (permalink)  
Antiguo 14/01/2009, 10:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Solo ejecuta la primera instruccion .htacces y mod_rewrite

Hola a toda la comunidad FDW.

Estoy iniciandome en el uso de mod_rewrite para generar url amigables y me surge el siguiente problema.

Resulta que solo me ejecuta la primera de las instrucciones que le pongo al htacces y no se muy bien que estoy haciendo mal

Código:
RewriteEngine On

RewriteRule ^(.*)\.html$ index.php?prod=$1  [L]

RewriteRule ^(.*)\.html$ index.php?conta=$1 [L]

RewriteRule ^(.*)\.html$ index.php?emp=$1 [L]
En caso de cambiar el orden de las instrucciones solo hace caso a la primera de ellas. Necesito que haga mas de una y no se como lograrlo.

Un saludo a todos, muchas gracias.
  #2 (permalink)  
Antiguo 16/01/2009, 06:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Solo ejecuta la primera instruccion .htacces y mod_rewrite

Wenas.

La cosa es que sin [L] tb hace solo la primera de ellas.

Lo que quiero conseguir es convertir la pagina de contacto que se localizaria por
"/index.php?conta=contacto" de forma que sea accesible por "/contacto html"

la pagina de productos y servicios
"/index.php?prod=productosyservicios" por "/productosyservicios.html"

y la de la empresa
"/index.php?emp=la_empresa" por "/la_empresa"

la forma de estructura de las tres es igual pero cada una responderia a una get diferente (conta, prod, emp.. y asi las que hubiera).
No se como podria diferenciarlas para que se me muestren como yo quiero. Soy consciente de que estoy un poco verde pero asi es como se aprende.

Muchas gracias
  #3 (permalink)  
Antiguo 16/01/2009, 10:16
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Respuesta: Solo ejecuta la primera instruccion .htacces y mod_rewrite

Tal como lo tienes no puedes hacerlo, tienes que cambiar el nombre de la variable GET para que en todos casos sea igual (ahora tienes 3 nombres, conta-prod-emp), y entonces sólo te haría falta una única línea... Pero si no puedes/quieres cambiarlo:

Código:
RewriteEngine On

RewriteRule ^productosyservicios\.html$ index.php?prod=productosyservicios  [L]

RewriteRule ^contacto\.html$ index.php?conta=contacto [L]

RewriteRule ^la_empresa\.html$ index.php?emp=la_empresa [L]
Si son pocas reglas las que tienes que hacer, así te valdría...
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #4 (permalink)  
Antiguo 16/01/2009, 10:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Solo ejecuta la primera instruccion .htacces y mod_rewrite

Muchas gracias ferny.

Así es como pensaba hacerlo ya que las get son distintas.
Lo que queria sabr era si seria posible hacer una regla para las tres sin tener que modificarlas pero ya esta todo aclarado. Deberia usar la misma para tener una regla comun.

Muchas gracias por tu aporte.
Saludos
  #5 (permalink)  
Antiguo 23/01/2009, 12:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Solo ejecuta la primera instruccion .htacces y mod_rewrite

Muy buenas
He estado leyendo por ahi sobre el mod_rewrite pero por el momento no consigo hacerlo funcionar.

Tengo en windows instalado:
appserv 2.5.9:
PHP Version 5.2.3
Apache/2.2.4 (Win32) PHP/5.2.3
Tengo activado el módulo, comprobado con un phpinfo y mirado en el httpconf.

Yo creo que el tema está en las rutas, ya que mi web está guardada así:
http://localhost/web/empresas/carpeta/webdesarrollo.com/web

He guardado en .htaccess en la carpeta web y esto es lo que pongo:

Options FollowSymLinks
RewriteEngine On
RewriteRule ^sec/blog.html$ index.php?sec=Blog


La regla es muy sencilla pero solo es para comprobar el funcionamiento pero no hay manera. ALguien me puede ayudar algo, ya he puesto la web en la raiz y nada, cambiado las propiedades de directory

<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>

se las he aplicado al directorio donde está la web pero nada. He colocado el Rewritebase web/empresas/carpeta/webdesarrollo.com/web pero nada tampoco.

Por más que busco no le veo el problema, una ayuda.

Gracias por adelantado y perdón por el tostón.

saludos
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 01:37.