htaccess-Umleitungs-Querystring-Wert

htaccess-Umleitungs-Querystring-Wert

Ich muss umleiten

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

Zu

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

Ich habe alles versucht, was ich online gefunden habe, aber das einzige, was funktioniert, ist die Umleitung von directory_one/index.php ohne Parameter auf newpage.php.

Ich habe diese .htaccess ausprobiert

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]

nur um zu sehen ob etwas passiert, aber nicht funktioniert

Ich habe auch versucht

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]

aber nichts ist passiert

Antwort1

Stellen Sie sicher, dass Sie die AllowOverrideEinstellungen für das Verzeichnis festgelegt haben .htaccess, in dem es sich befindet. Andernfalls wird es von Apache ignoriert.

Versuche dies:

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]

Wenn param_twoes wirklich sein soll YYY, verwenden Sie dies, da keine Rückverweise erforderlich sind:

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]

Wenn keine der oben genannten Maßnahmen funktioniert, hat möglicherweise eine andere Regel Vorrang oder Sie haben die Regeln an der falschen Stelle platziert. Sie sollten das Ganze debuggen mit

RewriteLog /path/to/file.log
RewriteLogLevel 3

Antwort2

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

verwandte Informationen