리디렉션해야 합니다
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]
하지만 아무 일도 일어나지 않았어
답변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