2011-12-09 17 views
6

tengo un RewriteRule así:.htaccess RewriteRule mantiene cadena de consulta

RewriteRule ^thesection$ /sections.php [L] 
RewriteRule ^thesection/(.*)$ /sections.php?show=$1 [L] 

así, si entro en domain.com/thesection -> funciona perfecto

pero !, si entro domain.com/thesection/hello redirecciona a domain.com/thesection?show=hello

No sé lo que estoy haciendo mal y he pasado horas buscando en Google. ¡Por favor ayuda!

Gracias de antemano

+0

Lo que se 'domain.com/thesection/hello' supone que para obtener reescrito para? –

+0

Hola, Jon, domain.com/thesection/hello debe ser interpretado por el servidor como domain.com/sections.php?show=hello ¡Gracias! – Marsupial000

Respuesta

9

Prueba esto y quiero saber

RewriteEngine On 
RewriteRule ^thesection/?$ /sections.php [L,QSA] 
RewriteRule ^thesection/([a-z0-9\-_]+)/?$ /sections.php?show=$1 [L,QSA] 

este redirigirá domain.com/thesection/hello a sections.php?show=hello

significa la bandera QSA:

Esta bandera obliga a la reescritura motor para agregar una cadena de consulta parte de la cadena de sustitución a la cadena existente, en lugar de reemplazar . Use esto cuando desee agregar más datos a la cadena de consulta a través de una regla de reescritura .

para que pueda agregar más parámetros, por ejemplo: http://www.domain.com/thesection/hello/?page=1 esta es la salida:

Array (
[show] => hello 
[page] => 1 
) 
+0

No sé lo que estoy haciendo mal, pero eso no ayudó. Si ingreso domain.com/thesection/hello, mi navegador redirige a domain.com/thesection?show=hello, que no es la URL más bonita que se haya visto. :(Gracias de todos modos, he aprendido mucho hoy. – Marsupial000

+0

Lo siento, mi mal. Tuve un error de configuración. Esto funcionó perfectamente, gracias! – Marsupial000

+0

me alegro de escuchar, gracias –

Cuestiones relacionadas