htaccess 리디렉션 쿼리 문자열 값

htaccess 리디렉션 쿼리 문자열 값

리디렉션해야 합니다

www.URL.it/directory_one/index.php?param_one=XXX&param_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&param_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&param_two=**YYY**
RewriteRule ^(.*)$ http://www.URL.it/test/index.php? [L,R=301]

하지만 아무 일도 일어나지 않았어

답변1

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

답변2

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

관련 정보