리디렉션을 실행하기 전에 BOTH $ _GET 조건이 참인지 확인하려고하지만 두 번째 조건이 참인지 확인하는 것입니다. 무슨 일이야 것은 내가 스스로 = testing123에 utm_campaign을 설정하면, 그것은 리디렉션되지 것입니다
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'this-is-an-example-post') !== false) {
if($_GET['utm_campaign']==testing123 && $_GET['utm_source']==testing456) {
function preserve_qs() {
if (empty($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], "?") === false) {
return "";
}
return "?" . $_SERVER['QUERY_STRING'];
}
header("Location: http://example123.com/this-is-an-example-post" . preserve_qs());
exit;
}
}
:
이 내가 가진 것입니다. 좋습니다, 둘 다 요구하기를 바랍니다. utm_campaign을 = testing123으로 설정하고 utm_source를 = testing456으로 설정하면 리디렉션됩니다. 이제는 utm_source 만 = testing456으로 설정하면 다시 리디렉션됩니다. 즉, 두 번째 조건을 확인하는 것입니다.하지만 사실이거나 스크립트가 종료되어야합니다. 이유는 알 수 없습니다. 그것이해야하는 방식으로 작동하지 않습니다.
이것은 Wordpress header.php 파일에 있습니다 (차이가 있는지 확실하지 않음).
if 문의 분기에서 'preserve_qs'를 선언하므로 실행되지 않으면 함수가 정의되지 않습니다. 그 외에도'testing123'과'testing456'을'testing456'과'testing123'으로 변경해야합니다. 정의 된 상수가 없다면 말입니다. –
preserve_qs는 헤더와 동일한 if 문에 있으므로 많이 변경되지는 않습니다 ... – user3528269
오류보고를하면 정의되지 않은 상수에 대해 뭔가를 던졌을 것입니다. http://php.net/manual/en/function.error-reporting.php –