2013-05-03 5 views
0

wp-admin 페이지를 하위 도메인으로 제한하는 방법은 무엇입니까? 우리는 WordPress 사이트에 다중 도메인이 있으므로 subdomain.websitename.php/wp-admin/을 404 페이지로 리디렉션해야합니다.wp-admin에 액세스 할 때 다중 사이트 하위 도메인을 404 페이지로 리디렉션하는 방법은 무엇입니까?

이 경우이 코드를 사용했지만 리디렉션하지 않습니다. 그것은 하위 인 경우

# wp-admin 404 for subdomains 

RewriteCond %{HTTP_HOST} !^(www\.)?websitename.com/wp-admin/$ [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.websitename.com/wp-admin/$ [NC] 
RewriteRule ^$ /%1.htm [L] 
+0

이유에 대해 더 많은 정보를 제공 할 수 있습니까? 어쩌면 다른 해결책이있을 수 있습니다. – brasofilo

+0

실제로 우리는 wordpress에 여러 개의 하위 도메인을 가지고 있습니다. 각 사용자에게는 하나의 하위 도메인이 있습니다. 슈퍼 관리자는 wp-admin에 액세스 할 수 있습니다. (예 : website.com/wp-admin)하지만 subdomain.website.com/wp-admin은 404 페이지로 리디렉션됩니다. htaccess를 작성하는 방법. 덕분에 –

+0

내 의심 : 모든 사용자에게 이런 일이 생길 것입니까? 아니면 일반 사용자입니까? 수퍼 관리자는 하위 도메인/wp-admin에 액세스 할 수 있습니까? 수퍼 유저가 website.com/wp-admin.admin에서 액세스 할 수 있습니다. – brasofilo

답변

0

우리가 admin_head에 끼어 특정 사용자를 확인합니다 어디에 (내가 바로? 적어도 한 사람이 사이트를 관리 할 수 ​​있어야한다고 생각)하는 Must Use plugin 만들고 사이트 또는 아닙니다.

<?php 
/** 
* Plugin Name: Block Access to Sub-sites WP-Admin 
* Plugin URI: http://stackoverflow.com/q/16363207/1287812 
* Version: 1.0 
* Author: Rodolfo Buaiz 
* Author URI: http://wordpress.stackexchange.com/users/12615/brasofilo 
*/ 

add_action('admin_head', 'b5f_prevent_multisite_wp_admin'); 

function b5f_prevent_multisite_wp_admin() 
{ 
    // Allow access only to one user, adjust the ID bellow 
    $current_user = wp_get_current_user(); 
    if (2 == $current_user->ID) 
     return; 

    // Allow access only to main site WP-Admin 
    if(is_main_site()) 
     return; 

    // User not allowed and site is a sub-site 
    // Redirect to front page of current site 
    wp_redirect(site_url()); 
    die(); 
} 

은 (하위 도메인이나 주요 사이트에서) 특정 페이지로 리디렉션을 조정하는 기능 site_url()network_site_url()에 대한 설명서를 참조하십시오 : 조건이 충족되지 않으면

는 리디렉션을한다.

+0

현재 플러그인을 설치 한 하위 도메인에 현재 사용자 ID가 표시되지 않습니다. 그것은 나를 위해 일하지 않습니다. htaccess에서 제한 할 수있는 기회가 있습니까? 나는이 라인을 .htaccess에서 바꿔야한다고 추측하고 있을지도 모른다. ............ RewriteCond % {REQUEST_FILENAME} -f [OR] RewriteCond % {REQUEST_FILENAME} -d RewriteRule^- [L] RewriteRule^(wp- (content | admin | includes). *) $ 1 [L] RewriteRule^(. * \. php) $ $ 1 [L] RewriteRule. index.php [L] –

+0

올바른 사용자 ID를 사용하고 있습니까? 사용자 수표를 제거하면 어떻게 될까요? 죄송합니다. 다시 쓰기 규칙이 좋지 않습니다 ... – brasofilo

+0

관리자가이 함수를 호출 할 때 로그인하지만 하위 도메인 사용자 로그인을 사용하면이 함수가 호출되지 않습니다. –