2011-11-15 3 views
1

나는 워드 퍼스널 wp_rewrite - 주로 이식성과 사용자의 편의를 위해 추가하고 싶은 .htaccess (잘 작동한다) 규칙을 다시 작성했다..htaccess to WP_Rewrite regex pattern

$newrules = array('^/services/rest/(.*)' => mAPI_PLUGIN_URL.'/socket.php?action=$matches[1]'); 

어떤 제안을 어떻게 해결하는 방법 또는 그 개선 : 정규식 패턴은 ...

RewriteCond %{REQUEST_URI} ^/services/rest/(.*)$ 
RewriteRule ^(.*)/(.*)/(.*)$ wp-content/plugins/some_plugin/api.php?action=$3 [L,NC] 

이 같은 대한 외모를 요구하는 구문과 같은보고있다?

+0

제대로 작동한다고해서 문제가 정확히 무엇입니까? 귀하의 질문을 명확히하십시오. –

+0

.htaccess가 잘 작동합니다 (첫 번째 코드 스 니펫) - WP 재 작성 구문 (두 번째 코드 스 니펫)을 참조 용으로 찾고 있습니다. http://codex.wordpress.org/Class_Reference/WP_Rewrite –

답변

2

은 스크립트/테마에 다음 코드를 추가합니다 : 내 경우

add_action('init', 'add_rewrite_rule'); 
add_filter('query_vars', 'query_vars'); 
add_filter('wp_head', 'rooter'); 

function add_rewrite_rule() 
{ 
    add_rewrite_rule('services/rest/(.*)', 'index.php?my_action=$matches[1]', 'top'); 
} 

function query_vars($query_vars) 
{ 
    $query_vars[] = 'my_action'; 
    return $query_vars; 
} 

function rooter() 
{   
    if(get_query_var('my_action')) 
    { 
     // Do your tasks here 
    } 
} 

은 내가 개인적인 용도로 개발 한 플러그인에 대한 좋은 노력하고 있습니다.

+1

결론적으로 이것은 설계 상으로는 가능하지 않을 수도 있습니다 : http://wordpress.stackexchange.com/questions/30386/where-do-i-use-add-rewrite-rule ... 왜냐하면 나는 다시하지 말아야하기 때문입니다. index.php를 통해 씁니다 (기본적으로 경로는 exlluded되어야하며 마지막 부분은 쿼리 매개 변수가 필요합니다). –

+0

WordPress는 단일 진입 점 응용 프로그램이므로 index.php를 사용해야하는 이유입니다. 라우터에서 실행하려는 파일을로드하고 해당 변수를 전달하고 모든 작업을 수행 할 수 있습니다. 마지막으로, ordeer에서 실행하려는 스크립트의 일부 위치에 die()를 추가하여 홈 페이지를 표시하지 않을 수 있습니다. 또한 당신은 그 파일을 좋아할만한 것을 할 수 있습니다. 우리는 당신 자신의 HTML 등을 추가합니다. –

+0

나는 당신이 의미하는 것을 이해하지만,이 경우 WP의 라우터를 사용하는 것은 진보가 아닙니다. - b/c 그것은 100 % 엔드 스크립트 (성능). "사용자 친화적이지 않은"경우에도 - .htaccess ...를 계속 사용하여 설치 루틴에 .htaccess 파일을 추가 할 수 있습니다. –