.htaccess reescriba la cadena de ruptura de la regla en el primero y el operador

este es mi codigo

RewriteEngine on
RewriteRule ^public/p-(.*)\&(.*)?$ public/index.php?page=$1.php&$2 [NC,L] 
RewriteRule ^public/p-(.*)$ public/index.php?page=$1.php

Esta es la URL

http://localhost/riviera/public/p-job-steps&job_id=7&step=1

La salida es

Array ( [page] => job-steps [job_id] => 7.php [step] => 1 ) 

Solo quiero agregar ".php" al primer parámetro

Desperdicié mis 4-5 horas para lograr este objetivo y no quiero modificar la estructura de URL de la aplicación que estoy creando. ¡Por favor ayuda a alguien!

preguntado el 08 de septiembre de 12 a las 09:09

¿Qué pasa si agregas QSA a [NC,L] ? -

ERROR del servidor cuando agrego QSA a [NC,L] -

Intenta reemplazar todo por RewriteEngine on RewriteRule ^public/p-(.*)$ public/index.php?page=$1.php [QSA,NC] -

Obtuve esta salida... en dirección inversa Array ([página] => pasos de trabajo [job_id] => 7 [paso] => 1.php) -

Está bien, espera un poco. Probaré el ejemplo en mi computadora:

1 Respuestas

Hay una bandera simple llamada QSA eso hará todo el trabajo por ti.

Escribe en el htaccess lo siguiente:

RewriteEngine on
RewriteRule public/p-(.*) public/index.php?page=$1.php [NC,QSA,B]

Lo probé y da:

Array
(
    [page] => job-steps.php
    [job_id] => 7
    [step] => 1
)

Cuando la URL es:

http://localhost/riviera/public/p-job-steps?job_id=7&step=1

Y deberías agregar B por razones de seguridad.

Respondido el 08 de Septiembre de 12 a las 10:09

Oye, gracias, pero quiero [página] => job-steps.php como primer parámetro y lo que sea después de los pasos del trabajo en la URL debe agregarse a la URL resultante: sam cristian

Da [page] => job-steps.php . - Mago

no entendí que quieres decir con whatever after job steps in url should be appended to resultant url - Mago

De acuerdo, gracias... no funciona con mi estructura de URL donde se usa '&' en lugar de '?'... pero creo que ahora necesito modificar la estructura de URL de mi aplicación... para incluir '?' reemplazando el carácter '&'. - sam cristian

¡Gracias! :) Y me olvidé de una cosa importante: el B bandera ! Es por seguridad. - Mago

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.