2017-12-21 8 views
1

저는 최근에 Wordpress 사이트의 관리자가되었습니다 (저는 완전히 WordPress에 익숙하지 않습니다). 그리고 리디렉션이 지정된 위치를 결정하는 데 어려움이 있습니다.리디렉션이 지정된 위치를 찾을 수 없습니다

.htaccess 파일을 확인했지만 거기에 지정된 내용이 없습니다. 내가 알 수있는 한, 다시 쓰기 규칙은 원인이 아닙니다.

리디렉션되는 페이지를 삭제하고 다시 만들려고했는데 리디렉션이 계속 발생합니다.

제 질문은 어디에서 리디렉션을 지정할 수 있습니까? 나는 어디에서 볼지에 대한 아이디어가 부족했습니다. 당신은 워드 프레스 에브리 요청에 알고 내 고객의

+2

정확히 무엇이 문제입니까? 질문이 그렇게 명확하지 않습니다. –

+0

정규 PHP와 마찬가지로 코드의 아무 곳이나 리디렉션을 지정할 수 있습니다 – JoshKisb

답변

0

하나는 캐치의 index.php입니다

https://www.qsleap.com/gmat/resources 같은 사용자 정의 URL로합니다. 요청 필터가 요청을 포착하고 페이지를 호출합니다.

이 코드를 읽어 보면 도움이 될 것입니다.

function permalinks_customizer_request_before($query){ 
$uri=$_SERVER['REQUEST_URI']; 
$match= preg_match('/(gmat|gre|sat|lsat|cat)(\/resources\/tags\/) 
(.*)\/(articles|videos|concept-notes|qna)/', $uri,$matches); 
//$match= 
preg_match('/(gmat|gre|sat|lsat|cat)/\resources/\tags/stanford- 
gsb/\articles|videos|concept-notes)/?$', $uri,$matches); 
if($match){ 

    $url = parse_url(get_bloginfo('url')); 
    $url = isset($url['path']) ? $url['path'] : ''; 
    $request = ltrim(substr($_SERVER['REQUEST_URI'], strlen($url)), '/'); 
    $request = (($pos = strpos($request, '?')) ? substr($request, 0, $pos) : $request); 
    if (! $request) 
     return $query; 
    $original_url="?page_name=tags&exam=".$matches[1]."&post_tag=".$matches[3]."&post_type=".$matches[4]; 
    if ($original_url !== null) { 
     $original_url = str_replace('//', '/', $original_url); 
     if (($pos = strpos($_SERVER['REQUEST_URI'], '?')) !== false) { 
      $queryVars = substr($_SERVER['REQUEST_URI'], $pos + 1); 
      $original_url .= (strpos($original_url, '?') === false ? '?' : '&') . $queryVars; 
     } 
     $oldRequestUri = $_SERVER['REQUEST_URI']; 
     $oldQueryString = $_SERVER['QUERY_STRING']; 

     $_SERVER['REQUEST_URI'] = '/' . ltrim($original_url, '/'); 
     $_SERVER['QUERY_STRING'] = (($pos = strpos($original_url, '?')) !== false ? substr($original_url, $pos + 1) : ''); 

     parse_str($_SERVER['QUERY_STRING'], $queryArray); 
     $oldValues = array(); 
     global $wp; 
     $wp->parse_request(); 
     $query = $wp->query_vars; 
     if (is_array($queryArray)) { 
       foreach ($queryArray as $key => $value) { 
         $oldValues[$key] = $_REQUEST[$key]; 
         $_REQUEST[$key] = $_GET[$key] = $value; 
         $query[$key]=$value; 
       } 
     } 
     $_SERVER['REQUEST_URI'] =''; 
     $_SERVER['QUERY_STRING']=''; 
    } 


} 
return $query; 
} 


add_filter('request','permalinks_customizer_request_before',0); 
function wp_url_rewrite_templates() { 
    if (get_query_var('page_name') && get_query_var('page_name' 
    )=='tags') { 
    add_filter('template_include', function() { 
     $template= dirname(__FILE__) . '/page-tags.php'; 
     return $template; 

    }); 
} 


    } 
    add_action('template_redirect', 'wp_url_rewrite_templates' ,4); 
+0

대답을 설명해야합니다 .... – GYaN

0

리디렉션을 제거하는 가장 쉬운 방법은이 플러그인을 사용하는 것입니다.

https://redirection.me/

후 설치하고 활성화. 워드 프레스 관리자

도구에서>

리디렉션

당신은 리디렉션의 목록을 확인하고 추가 할 것입니다/하나를 제거합니다.