Значение строки запроса перенаправления htaccess
Мне нужно перенаправить
www.URL.it/directory_one/index.php?param_one=XXX¶m_two=**YYY**
в
www.URL.it/newpage.php?param_three=**YYY**
Я перепробовал все, что нашел в Интернете, но единственное, что работает, это перенаправить directory_one/index.php в newpage.php без параметров.
Я попробовал это.htaccess
RewriteCond %{HTTP_HOST} =www.URL.it/directory_one/index.php? [NC]
RewriteCond %{QUERY_STRING} ^(param_one=XXX¶m_two=**YYY**)
RewriteRule ^$ http://www.URL.it/newpage.php?%1 [R=301,L]
только чтобы увидеть, если что-то происходит, но не работает
Я пробовал также
RewriteCond %{REQUEST_URI} /directory_one/index\.php
RewriteCond %{QUERY_STRING} param_one=XXX¶m_two=**YYY**
RewriteRule ^(.*)$ http://www.URL.it/test/index.php? [L,R=301]
но ничего не произошло
2 ответа
Убедитесь, что у вас есть AllowOverride
набор для каталога .htaccess
находится в Apache или проигнорирует его.
Попробуй это:
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]
Если param_two
действительно должно быть YYY
используйте это, так как нет необходимости использовать обратные ссылки:
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]
Если ничего из вышеперечисленного не сработало, другое правило может иметь приоритет, или вы, возможно, разместили правила не в том месте. Вы должны отладить все это с
RewriteLog /path/to/file.log
RewriteLogLevel 3
RewriteCond %{QUERY_STRING} param_one=XXX
RewriteCond %{QUERY_STRING} param_two=.*YYY.*
rewriteRule (.*) www.URL.it/newpage.php?param_three=%{QUERY_STRING} param_two