詳細検索

PATH_INFO 얻고 숨겨진 모드로 할당하세요

아바타
글쓴이 すがピー
2분 읽기
태그 php

PATH_INFO 얻고 숨겨진 모드로 할당하세요
日本語에서 번역 • 원문 보기

URL에 매개변수를 붙여 GET로 보내고 싶다면,

http://www.example.com/?param0=aaa&param1=bbb

네가 나에게 주고 받을 때,

$param 0 = $_GET['param0']; 
$param 1 = $_GET['param1']; 

또는

$param 0 = $_REQUEST['param0']; 
$param 1 = $_REQUEST['param1']; 

그렇게 하는 것이 일반적이지만 다음과 같습니다.

http://www.example.com/aaa/bbb/ 

그리고

$param = split("[/\.]", $_SERVER["PATH_INFO"]); 

그렇다면 "aaa"는 $param[0]에, "bbb"는 $param[1]에 할당됩니다.

워드프레스에서 이걸 시도하면 "aaa"나 "bbb"를 URL로 취급하려 할 텐데, 당연히 영구 링크나 실체가 없기 때문에 표시되지 않습니다(만약 존재하는 엔티티가 있다면 표시됩니다).

워드프레스에서 PATH_INFO을 사용하지 않는 것이 더 낫다고 생각하지만, 필요하다면 워드프레스와 상관없이 PATH_INFO를 받아들이는 프로그램을 만들어 매개변수를 워드프레스에 전달할 수 있습니다.

수신 방법은 위와 같으니 나머지는 전달하는 방법이지만, 가장 쉬운 방법은 GET로 리디렉션하는 것입니다.

$url = "목적지 URL?param0=" . $param 0. "&param1=" . $param 1; 
헤더("HTTP/1.1 301 영구 이동"); 
헤더("위치: " . $url ); 

GET에서 URL의 매개변수를 보고 싶으면 세션을 사용할 수도 있습니다.

session_start(); 

$_SESSION[ 'param0' ] = $param 0; 
$_SESSION[ 'param1' ] = $param 1; 

$url = "URL로 마이그레이션; 
헤더("HTTP/1.1 301 영구 이동"); 
헤더("위치: " . $url ); 

쿠키를 사용할 수 있다면 괜찮지만, 사용할 수 없다면,

헤더("위치: " . $url . "?" . session_name() . "=" . session_id() ); 

GET에서 세션 ID를 전달할 수 있습니다.

Related Articles