2014-10-29 2 views
0

나는 GET 데이터를 보내고있는 사용자 정의 페이지 템플릿이있는 WordPress 페이지를 사용하고 있습니다. 내가 만들고 싶어 http://example.com/blue/green 다음 단계로이 촬영htaccess는 WordPress 사이트에서 404를 일으키는 규칙을 다시 작성합니다.

RewriteEngine On 
RewriteBase/

RewriteRule ^blue/green/?$ /blue/?id=green [NC,L] 

http://example.com/blue/?id=green에 다시 할 녹색 일반적인 다음과 같이 :

RewriteEngine On 
RewriteBase/

RewriteRule ^blue/([a-zA-Z0-9]+)/?$ /blue/?id=$1 [NC,L] 

이러한 규칙은 htaccess로 파일에 워드 프레스 규칙 위에 배치됩니다 , 404 오류가 계속 발생합니다.

RewriteEngine On 
RewriteBase/

RewriteRule ^blue/([a-zA-Z0-9]+)/?$ http://example.com/blue/?id=$1 [NC,L] 

그러나,이 두 가지가 원인 :

RewriteEngine On 
RewriteBase/

RewriteRule ^blue/([a-zA-Z0-9]+)/?$ /blue/?id=$1 [R=301,NC,L] 

아니면 절대 URL에 넣으면 너무 작동 : 나는 301 리디렉션을 사용하는 경우

그러나, 작업 수행 가능한 경우 변경하지 않을 URL입니다. 처음 두 htaccess 문은 무엇이 잘못 되었습니까?

답변

0

결국 이것을 알아 냈습니다. 직접 htaccess 대신 WordPress 재 작성 기능을 사용해야합니다. 다음은 테마 코드에 대한 코드입니다.

// Add query tags 
add_filter('query_vars', 'stats_rewrite_tag'); 
function stats_rewrite_tag($query_vars) 
{ 
    $query_vars[] = 'id'; 
    return $query_vars; 
} 

// Add to htaccess 
function stats_rewrite_rule() { 
    global $wp_rewrite; 
    add_rewrite_rule(
     'blue(/([^/]+))?/?', 
     'index.php?pagename=blue&slug=$matches[2]', 
     'top' 
    ); 
    $wp_rewrite->flush_rules(false); 
} 
add_action('init', 'stats_rewrite_rule'); 
관련 문제