valor de cadena de consulta de redirección de htaccess

valor de cadena de consulta de redirección de htaccess

necesito redirigir

www.URL.it/directory_one/index.php?param_one=XXX&param_two=**YYY**

a

www.URL.it/newpage.php?param_three=**YYY**

Intenté todo lo que encontré en línea, pero lo único que funciona es redirigir directorio_one/index.php a newpage.php sin parámetros.

Probé este .htaccess

RewriteCond %{HTTP_HOST} =www.URL.it/directory_one/index.php? [NC]
RewriteCond %{QUERY_STRING} ^(param_one=XXX&param_two=**YYY**)
RewriteRule ^$ http://www.URL.it/newpage.php?%1 [R=301,L]

solo para ver si pasa algo pero no funciona

lo intenté también

RewriteCond %{REQUEST_URI} /directory_one/index\.php
RewriteCond %{QUERY_STRING} param_one=XXX&param_two=**YYY**
RewriteRule ^(.*)$ http://www.URL.it/test/index.php? [L,R=301]

pero no pasó nada

Respuesta1

Asegúrese de haber AllowOverrideconfigurado el directorio .htaccessen el que reside o Apache lo ignorará.

Prueba esto:

RewriteCond %{QUERY_STRING} param_one=XXX
RewriteCond %{QUERY_STRING} param_two=([^&]+)
RewriteRule ^/directory_one/index\.php$ http://www.URL.it/newpage.php?param_three=%1 [L,R]

Si param_tworealmente es así YYY, use esto ya que no es necesario usar referencias anteriores:

RewriteCond %{QUERY_STRING} param_one=XXX
RewriteCond %{QUERY_STRING} param_two=YYY
RewriteRule ^/directory_one/index\.php$ http://www.URL.it/newpage.php?param_three=YYY [L,R]

Si nada de lo anterior funciona, es posible que otra regla tenga prioridad o que haya colocado las reglas en el lugar equivocado. Deberías depurar todo con

RewriteLog /path/to/file.log
RewriteLogLevel 3

Respuesta2

RewriteCond %{QUERY_STRING} param_one=XXX
RewriteCond %{QUERY_STRING} param_two=.*YYY.*
rewriteRule (.*) www.URL.it/newpage.php?param_three=%{QUERY_STRING} param_two

información relacionada