답변:
불행히도 현재 wp-hackers 목록 의이 최근 스레드 와 trac 의이 티켓에서 볼 수있는 것처럼 수정으로 간주 할 수 없으며 그렇게 할 것 같지 않습니다 .
이것을 다시보고 싶다면 다음과 같이 제안합니다.
wp-hackers에 귀하의 사례 를 제시 하되 귀하의 유스 케이스가 더 좋고 "모호함을 통한 보안"이 아니라면 위와 같이 격추 될 수 있음을 미리 양해하십시오.
같은 경고 로 트랙 티켓 에 당신의 주장을 제시하십시오 .
또한 원하는 기능을 가능하게 하는 패치 를 trac에 업로드 하십시오. 일이 이미 끝났을 때 거절하는 것은 훨씬 어렵습니다 (물론, 그들은 "예"라고 말하는 것보다 자주 "아니오"라고 말하는 것을 선호합니다.
아니요, 폴더 이름을 바꿀 수 없습니다. 경로는 WordPress 소스 전체의 여러 위치에 하드 코딩되어 있습니다.
모호성을 통한 보안은 실제로 보안이 아닙니다.
사람들은이 질문을 계속하지만 사람들은이 질문을 중복으로 표시합니다. 그러나 이것에 대한 선택된 답변은 실제로 질문에 대한 답변이 아닙니다.
워드 프레스 관리자의 이름을 바꾸려면 두 단계를 거쳐야합니다.
다음 코드에서는 대시 보드를 새 wp-admin의 이름으로 사용하고 있습니다. 아래 코드에서 대시 보드를 새 관리자 이름으로 변경하십시오.
먼저 wordpress에게 관리자 URL을 변경하고 싶다고 말해야합니다.
라인 2558에서 wp-includes / link-template.php 는 관리 URL을 결정하는 코드입니다.
admin_url
필터를 사용하면 다음 기능으로 관리자 URL을 성공적으로 변경할 수 있습니다.
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
다음을 수행하여 새 URL이 무엇인지 테스트 할 수 있습니다.
function whats_my_admin_url() {
$url = admin_url();
echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
}
add_action( 'admin_notices', 'whats_my_admin_url' );
그러나 관리자를 클릭 할 때 모든 것이 작동하지 않고 일부 링크가 발견되지 않거나 404를 찾을 수 없음을 알 수 있습니다.
둘째, 워드 프레스 루트 디렉토리에서 .htaccess 를 변경하고 시작하기 전에 다음을 추가하십시오.
#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE
이제 .htaccess를 편집 할 때 전문가가 아니므로 일부는 필요하지 않을 수 있습니다. 그러나 나는 그것이 작동하지 않는 것을 결코 발견하지 못했습니다.
여기 모든 것이 있습니다. 파일을 작성하고 플러그인 폴더 또는 mu-plugins 폴더에 놓으십시오. (대시 보드의 모든 인스턴스를 원하는 관리 URL로 변경해야 함)
<?php
/**
* Plugin Name: Change My Admin URL
* Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
* Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
* Version: 1.0
* Author: Bryan Willis
* Author URI: http://profiles.wordpress.org/codecandid
* License: GPL2
*/
/*
#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE
*/
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
문제?
이 방법을 사용하여 1 년이 넘지 않았습니다. wp-admin은 여전히 어떤 종류의 짜증나는 일을 할 것입니다. 그러나 그것은 무엇보다 예방책입니다. wp-admin을 차단하거나 리디렉션하려고 할 때로 드되지 않는 곳에서 wp-admin을 하드 코딩 한 잘못 작성된 플러그인이 있습니다. htaccess 로이 작업을 수행 할 수있는 방법이 있다고 확신하지만 성공적으로 파악하지 못했습니다. 또한 이것은 다중 사이트 또는 그와 유사한 것에서 테스트되지 않았습니다.
이것은 꽤 비슷하지만 어떤 이유로 든 위의 답변이 시도한 모든 호스트에서 작동하지 않았습니다.
추가 .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
mu-plugins 폴더에 파일을 작성하고 new-admin.php
여기에 추가하십시오.
<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
add_filter('site_url', 'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}
참고 : 이 방법은 일부 호스트에서 더 잘 작동하는 것처럼 보이지만 wp-admin 링크를 새 관리자 URL로 리디렉션하지 않는 문제가 여전히있었습니다. 아래에서 시도한 접근법이 있습니다. 하지만 이 아래 작동하지 않습니다 나는 그것이 바른 길에 생각합니다. 어떤 후크를 사용 해야할지 확실하지 않습니다. htaccess가 더 나은 대안 일 수는 있지만 그렇게 시도했을 때 리디렉션 루프가 계속 발생했습니다.
add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
$redirect_to = $_SERVER['REQUEST_URI'];
if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
$redirect_to = $_REQUEST['redirect_to'];
$check_wp_admin = stristr($redirect_to, 'wp-admin');
if($check_wp_admin){
wp_safe_redirect( '404.php' );
}
}
}
site_url
대신 필터를 사용하여 맨 아래로 업데이트 응답을 시도하십시오 admin_url
. 꽤 잘 작동하는 것 같습니다.
WordPress에서 공식적으로 지원하는 방법은 다음과 같이 사이트를 루트에 유지하면서 WordPress 설치 파일을 하위 디렉토리로 이동하는 것입니다.
사이트 URL : http://my-blog.com
관리 URL : http://my-blog.com/7nxnkkugrdzm/wp-admin
관리 URL을 자유롭게 변경할 수는 없지만 원하는 것을 접두어 로 붙일 수 있습니다. 이것은 보안 관점에서도 마찬가지입니다. 또한 모든 WordPress 설치 파일을 사용자에게 알려지지 않은 위치로 옮길 수 있다는 이점이 있으므로 모든 워드 프레스 강화 전략의 일부 여야합니다.
워드 프레스 코덱스 : 워드 프레스 자체 디렉토리 제공
또한이 보안 체계는 모호한 URL 이지만, 모호한 보안 과는 다릅니다 . 모호한 URL 은 암호만큼이나 완벽하게 유효한 보안 체계이며, 모호하지 않은 보안 은 입증되지 않은 비밀 절차를 사용합니다.
같은주의 사항이 암호와 마찬가지로하지만 적용과 같은 사용자 지정 폴더 뭔가를 호출 7nxnkkugrdzm
하지 happy-snappy-admin
. 또한 사용자가 관리자 URL이 비밀임을 알고 있어야합니다.
실제로 여기에 매우 좋은 튜토리얼이 있습니다.
소스 코드 미러 에서 WordPress 정보를 숨기는 방법
wp-content의 이름을 바꾸고 wp-admin의 이름을 바꾸고 WordPress에서 생성기 태그를 제거하는 방법이 포함되어 있습니다.
이 튜토리얼은 소스 코드에서 명백한 증거 또는 표시를 변경 하여 사이트에서 WordPress 정보를 효과적으로 제거합니다 .
폴더 이름, wp-admin 로그인 URL을 변경하는 방법과 사람들이 직접 갈 수 있도록 login.php가 기본 사이트로 리디렉션되는지 확인합니다.
가입자 레벨 사용자가 wp-admin 디렉토리를 보지 못하게하려면 독립 디렉토리에 로그인 / 등록 및 프로파일 / 편집 페이지의 독립형 버전을 자체 디렉토리에 작성할 수 있습니다. 그런 다음 htaccess 또는 IP 제한을 통해 관리 폴더를 보호 할 수 있습니다. (이를 수행하더라도 일부 플러그인은 AJAX 기능을 추가하는 데 사용하므로 admin-ajax 파일에 대한 예외를 설정해야합니다).
이 방법을 사용하면 원하는 "모호함"(실제로 많은 일을 수행하지는 않지만 종종 클라이언트와 관리자의 기분이 좋아지는)을 제공하고 관리자에 대한 액세스를 제한하여 실제 보안을 강화합니다. 솔직히 "/ login"이라는 URL은 "wp-login.php"보다 훨씬 멋지게 보입니다.
이로 인해 사이트가 방탄되지는 않습니다. 그러나 기본 개선이 훌륭합니다.
관리 제어판을 잠그는 한 가지 방법은 .htaccess 규칙을 사용하는 것입니다. wp-admin 디렉토리의 루트에 .htaccess 파일을 추가하십시오. 이 파일을 추가 한 후 다음 규칙을 추가하여 모든 IP 주소를 거부하고 IP 만 허용하십시오.
http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>
WordPress 설치에 추가 보안 계층을 추가하기 위해 wp-admin의 이름을 바꾸려면 Roots / Bedrock WordPress Boilerplate을 사용해보십시오 . 웹 루트가 아닌 파일에 대한 액세스를 제한하기 위해 웹 루트를 분리하는 데 도움이 될 수 있습니다. 또한 wp-content /의 이름을 app /로 바꾸는 것과 같은 자체 하위 디렉토리와 다음과 같은 추가 기능을 추가하여 전체 WordPress 코어를 구성 / 보안하는 데 도움이 될 수 있습니다.
자세한 사용법 은 GitHub Repo 를 확인할 수도 있습니다.
http://wordpress.org/extend/plugins/stealth-login/을 살펴보십시오 . 도움이 될 수 있습니다.
아니요 짧은 코드 나 htaccess 해킹으로 wp-admin 폴더의 이름을 바꿀 수 없습니다.
과거에는 태그 "wp-admin, wp-content ... etc"에 대해 Coda (내가 사용하는 편집기)를 통해 전체 폴더 검색을 수행하여 클라이언트에서 동일한 작업을 수행하고 "wp-"를 파일.
설치 후에는 설치할
수는 있지만 설치 하려는 플러그인과 동일한 작업을 수행해야합니다. 새 버전에서 "wp-"태그를 지워 코어를 수동으로 업데이트해야합니다.
모든 방법에서 나는 당신이 이런 식으로 할 것을 제안하지 않으며, 그대로두고 사용자 로그인 / 등록 / 프로필 페이지를 구현하여 사용자 / 고객에게 더 나은 경험을 제공하십시오.
Cozmolabs의 Cristian은 매우 훌륭한 자습서를 작성했습니다. 코드를 약간 편집하여 WordPress 테마에서 실행할 수 있습니다.
프런트 엔드에서 게시물 양식을 추가하여 게시물을 작성할 수있는 관리자 및 사용자가 프런트 엔드에서 양식을 작성할 수 있습니다.
여기에서는 프론트 엔드 게시물 페이지를 작성하는 방법에 대한 예제와 코드를 볼 수 있습니다. 프런트 엔드 포스트 제출
또한 더 많은 기능으로 동일하게 작동하는 멋진 플러그인을 살펴볼 수 있습니다 .
IFRAME에서 WP-ADMIN 작업은 어떻게됩니까?
wp 대시 보드에서 "Admin"이라는 새 페이지를 만듭니다. 예 : yourdomain / admin /
다음 을 사용 하여 header.php
page.php
및 / 또는 footer.php
템플릿에서 필요하지 않은 항목을 비활성화 하여 사례를 작성할 수 있습니다 .
<?php
if(!is_page('admin')): //if not the admin page.
//wrap code not needed or wanted.
else: ?>
<style type="text/css">
.responsive-iframe {
position: relative;
padding-bottom: 56.25%; /*16:9*/
height: 0;
overflow: hidden;
iframe {
position: absolute;
top:0;
left: 0;
width: 100%; //or 100vw
height: 100%; //or 100vh
}
}
</style>
<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>
<?php
endif;
이것은 예쁘지는 않지만 wp-admin을 URL에서 숨길 수는 있습니다. 다른 방법은 마스크 URL이 활성화 된 상태에서 도메인 전달을 사용하는 것입니다.
+1
그들은 "예"그래서 미리 양해 말씀보다 그들이 더 자주 "NO"많은 말을하지를 선호합니까 :