Tôi có thể đổi tên thư mục wp-admin không?


70

Có thể đổi tên thư mục wp-admin không?

Tôi biết tôi chỉ có thể đổi tên nó, nhưng trừ khi nó được hỗ trợ bởi mã, rất nhiều thứ sẽ bị hỏng.

Nếu tôi sử dụng một tên thư mục tùy chỉnh, nó sẽ làm cho nó an toàn hơn một chút, bảo mật bằng cách che khuất và tất cả những thứ đó.

Câu trả lời:


39

Thật không may, hiện tại không có khả năng và dường như sẽ không coi đó là một sửa đổi như bạn có thể thấy bởi chủ đề gần đây này trong danh sách tin tặc wpvé này trên trac .

Nếu bạn thực sự muốn thấy điều này được xem xét lại, tôi đề nghị:

  1. Trình bày trường hợp của bạn trên các tin tặc wp nhưng được cảnh báo trước về trường hợp sử dụng của bạn tốt hơn và không "bảo mật thông qua che khuất" nếu không nó sẽ bị bắn hạ như trên.

  2. Trình bày lập luận của bạn trong một vé trac với cùng cảnh báo.

  3. Thậm chí tốt hơn, tải lên một bản vá để trac cho phép chức năng mong muốn của bạn. Thật khó để nói không khi công việc đã hoàn thành (nhưng tất nhiên, họ có sở thích nói "không" thường xuyên hơn nhiều so với việc họ nói "có" nên được báo trước.)


10
+1 họ có sở thích nói "không" thường xuyên hơn nhiều so với họ nói "có" nên được cảnh báo trước :)
Sisir

11

Không, bạn không thể đổi tên thư mục. Đường dẫn được mã hóa cứng ở nhiều vị trí trong toàn bộ nguồn của WordPress.

Bảo mật thông qua che khuất không thực sự bảo mật.


21
Và đó là một lý do lười biếng tốt nhất cho việc không thay đổi các thực hành lập trình xấu như các số hoặc chuỗi ma thuật mã hóa cứng.
hakre

6
@hakre +100 Btw, hầu hết mọi người hỏi cách ẩn các thư mục "wp- *" không nhất thiết phải tìm kiếm bảo mật, họ thực sự đang tìm kiếm sự che khuất..thì họ cố gắng phân tích trang web của họ nhiều hoạt động đòi hỏi nỗ lực hơn.
Victor Farazdagi

3
Trên thực tế, nó không bảo mật bằng cách tối nghĩa. Đó là URL tối nghĩa, một kỹ thuật bảo mật hợp lệ. Xem câu trả lời dưới đây để biết chi tiết.
cmc

1
Chà, tôi đã cố gắng theo dõi với một loạt các đối số mới, nhưng câu trả lời là: "Đây là một wontfix mạnh mẽ trong cuốn sách" và khá gượng gạo "đăng nhập gmail cũng không che khuất url". Không có lý do kỹ thuật, không giải thích, không tranh luận, họ sẽ không làm điều đó.
cmc

1
Wordpress đáng kính hơn nhiều so với gmail. Một lý do là, wordpress là nguồn mở. Mọi người đều biết mã. Bảo mật thông qua che khuất không thực sự bảo mật? Nhưng chúng tôi không phải là lập trình viên của wordpress. Đó là nguồn mở. Theo quan điểm của tôi, tối nghĩa là giúp làm cho an toàn. Tại sao mọi người lại sử dụng mật khẩu được mã hóa? Theo logic này, không có việc sử dụng mật khẩu mã hóa .... Bởi vì nếu cơ sở dữ liệu có thể xem được, hacker có thể làm bất cứ điều gì ... Wordpress của tôi bị hack 2 lần và 2 lần wordpress của công ty tôi trong 10 lần năm ... Và không ai trong số 6-7 tài khoản gmail của tôi bị hack trong 15 năm cho đến nay ...
web2students.com

11

Mọi người cứ hỏi câu hỏi này, nhưng mọi người cứ đánh dấu nó là một bản sao. Câu trả lời được chọn cho điều này, tuy nhiên, thực sự không phải là một câu trả lời cho câu hỏi.

Để đổi tên quản trị wordpress, bạn cần thực hiện hai bước.

Trong đoạn mã sau tôi đang sử dụng bảng điều khiển làm tên của quản trị viên wp mới của tôi. Thay đổi bảng điều khiển trong mã dưới đây thành bất cứ điều gì bạn muốn đặt tên quản trị viên mới của bạn.

Trước tiên, bạn cần nói với wordpress bạn muốn thay đổi url quản trị viên.

Trên dòng 2558 wp-gộp / link-template.php là mã làm mất hiệu lực url quản trị viên.

Sử dụng admin_urlbộ lọc, bạn có thể thay đổi thành công url của quản trị viên với chức năng sau:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Bạn có thể kiểm tra để xem url mới của bạn là gì bằng cách thực hiện điều này:

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' );

Tuy nhiên, nếu bạn sẽ nhận thấy khi nhấp qua quản trị viên rằng không phải mọi thứ đều hoạt động và một số liên kết có thể cung cấp cho bạn 404 không tìm thấy hoặc một cái gì đó tương tự.

Thứ hai, thay đổi .htaccess trong thư mục gốc wordpress của bạn và thêm phần sau vào đầu trước bất cứ điều gì khác.

#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

Bây giờ, tôi không phải là chuyên gia khi chỉnh sửa .htaccess nên một số điều này có thể không cần thiết. Tuy nhiên, tôi chưa bao giờ thấy nó không hoạt động.

Đây là toàn bộ. Tạo một tệp và thả vào thư mục plugin hoặc thư mục mu-plugins của bạn. (hãy nhớ thay đổi mọi phiên bản của bảng điều khiển thành url quản trị viên ưa thích của bạn)

<?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');

Vấn đề?

Tôi đã không có bất kỳ trong hơn một năm sử dụng phương pháp này. Bạn có thể nhận thấy rằng wp-admin vẫn sẽ hoạt động tốt, nhưng đó là một biện pháp phòng ngừa hơn bất cứ điều gì. Tôi đã có một số plugin được viết kém mà mã hóa wp-admin ở một số nơi sẽ không tải khi cố gắng chặn hoặc chuyển hướng wp-admin. Tôi chắc chắn có một cách để làm điều này với htaccess, nhưng tôi đã không tìm ra thành công. Ngoài ra, điều này chưa được thử nghiệm trên multisite hoặc bất cứ điều gì tương tự.

Cập nhật: Phương pháp thay thế

Điều này khá giống nhau, nhưng vì một số lý do, câu trả lời trên của tôi không hoạt động trên mọi máy chủ tôi đã thử.

Thêm vào .htaccess

RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]

Tạo một tệp trong thư mục mu-plugins được gọi new-admin.phpvà thêm tệp này vào đó:

<?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);
}

Lưu ý: Cách tiếp cận này có vẻ hoạt động tốt hơn trên một số máy chủ, nhưng vẫn có vấn đề không chuyển hướng liên kết wp-admin sang url quản trị mới. Đây là một cách tiếp cận tôi đã thử dưới đây. Mặc dù điều này dưới đây không hoạt động, tôi nghĩ rằng nó đang đi đúng hướng. Tôi không hoàn toàn chắc chắn nên sử dụng hook nào. htaccess có thể là một sự thay thế tốt hơn nhưng tôi vẫn nhận được các vòng chuyển hướng khi tôi thử theo cách đó.

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' );
    }
  }
}

Có một cách tiếp cận tương tự được viết thành một lớp ở đây: wordpress.stackexchange.com/a/7832/76440
majick

Rất vui vì bạn đã chỉ ra câu trả lời đó @makick! Đó là một câu trả lời tuyệt vời và thực sự là nơi tôi có một số ý tưởng từ đó, nhưng dường như nó không hiệu quả với tôi trong rất nhiều trường hợp đó là nơi mà những thay đổi của tôi xuất hiện. Một điều tôi vẫn đang cố gắng tìm ra là làm thế nào để chuyển hướng tất cả các liên kết wp-admin được nhập thủ công trong url. Tôi dường như không thể tìm ra cái đó. Nếu bạn có cơ hội hãy thử câu trả lời cập nhật của tôi về phía dưới bằng site_urlbộ lọc thay vì admin_url. Công việc có vẻ tốt.
Bryan Willis

9

Một cách tiếp cận được WordPress hỗ trợ chính thức là chuyển các tệp cài đặt WordPress vào một thư mục con, trong khi vẫn giữ trang web ở gốc, như vậy:

URL trang web: http://my-blog.com

URL quản trị viên: http://my-blog.com/7nxnkkugrdzm/wp-admin

Mặc dù điều này không mang lại cho bạn sự tự do hoàn toàn trong việc thay đổi url quản trị viên, nhưng điều đó có nghĩa là bạn có thể thêm tiền tố vào bất cứ điều gì bạn thích. Điều này là tốt như từ quan điểm bảo mật. Nó cũng có lợi ích là di chuyển tất cả các tệp cài đặt WordPress vào một vị trí mà người dùng không biết, vì vậy nó phải là một phần của bất kỳ chiến lược làm cứng wordpress nào.

Từ Codex WordPress: Cung cấp cho WordPress Thư mục riêng của nó

Ngoài ra, lưu ý rằng mặc dù lược đồ bảo mật này được gọi là URL tối nghĩa , nhưng nó không giống với bảo mật bởi sự tối nghĩa . URL tối nghĩa là một lược đồ bảo mật hoàn toàn hợp lệ, cũng tốt như mật khẩu, trong khi bảo mật bằng cách che khuất phụ thuộc vào việc sử dụng các quy trình bí mật chưa được chứng minh.

Các cảnh báo tương tự được áp dụng mặc dù như với mật khẩu: Gọi thư mục tùy chỉnh một cái gì đó như 7nxnkkugrdzm, không happy-snappy-admin. Ngoài ra, hãy đảm bảo người dùng của bạn biết url quản trị viên là một bí mật.


7

Thực sự có một hướng dẫn rất tốt về điều này ở đây:

Cách ẩn thông tin WordPress khỏi máy nhân bản mã nguồn của bạn

Bao gồm cách đổi tên nội dung wp, đổi tên wp-admin và xóa thẻ trình tạo khỏi WordPress.

Hướng dẫn này sẽ thay đổi bằng chứng rõ ràng hoặc chỉ dẫn của nó trong mã nguồn của bạn, loại bỏ hiệu quả thông tin WordPress khỏi trang web của bạn .

Nó giải thích cách thay đổi tên thư mục, url đăng nhập wp-admin và đảm bảo rằng login.php chuyển hướng đến trang web chính để mọi người có thể đến đó trực tiếp.


6

Nếu bạn muốn ngăn người dùng ở cấp độ thuê bao nhìn thấy thư mục wp-admin, bạn có thể tạo các phiên bản độc lập của các trang đăng nhập / đăng ký và hồ sơ / chỉnh sửa trong các thư mục của riêng họ. Sau đó, bạn có thể bảo vệ thư mục quản trị của mình thông qua htaccess hoặc hạn chế IP. (Mặc dù nếu bạn làm điều này, bạn nên tạo một ngoại lệ cho tệp admin-ajax, vì một số plugin sử dụng nó để thêm, ừm, chức năng AJAX).

Cách tiếp cận này mang đến cho bạn "sự tối nghĩa" mà bạn muốn (điều này thực sự không làm được gì nhiều, nhưng thường làm cho khách hàng và người quản lý cảm thấy tốt hơn), và cũng thêm một số bảo mật thực sự bằng cách giới hạn quyền truy cập vào quản trị viên. Ngoài ra, thành thật mà nói, một URL chỉ nói "/ login" trông đẹp hơn rất nhiều so với "wp-login.php".

Nó sẽ đi mà không nói rằng điều này không làm cho trang web của bạn chống đạn. Nhưng đó là một cải tiến cơ bản, tốt đẹp.


2

Một cách để khóa bảng điều khiển quản trị là sử dụng các quy tắc .htaccess. Chỉ cần thêm tệp .htaccess vào thư mục gốc của thư mục wp-admin. Sau khi bạn thêm tệp này, chỉ cần thêm quy tắc sau để từ chối tất cả các địa chỉ IP và chỉ cho phép IP của bạn:

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>

1

Nếu bạn muốn đổi tên wp-admin với mục đích thêm lớp bảo mật bổ sung cho cài đặt WordPress của mình, bạn cũng có thể dùng thử Roots / Bedrock WordPress Boilerplate . Nó có thể giúp cô lập root web để hạn chế quyền truy cập vào các tệp không phải web. Nó cũng có thể giúp tổ chức / bảo mật toàn bộ lõi WordPress bằng cách đặt nó trong thư mục con riêng của nó như đổi tên wp-content / thành ứng dụng / cũng như các tính năng bổ sung sau:

  • Quản lý phụ thuộc với Nhà soạn nhạc
  • Cấu hình WordPress dễ dàng với các tệp cụ thể của môi trường
  • Biến môi trường với Dotenv
  • Trình tải tự động cho các trình cắm mu (sử dụng các trình cắm thông thường làm trình cắm mu)
  • Tăng cường bảo mật (tách web gốc và mật khẩu an toàn với wp-password-bcrypt)

Bạn cũng có thể kiểm tra Repit GitHub của họ để sử dụng chi tiết hơn:


0

Hãy xem http://wordpress.org/extend/plugins/stealth-login/ điều này có thể giúp bạn hiểu.


Tôi đã gặp vấn đề với plugin đó khi tôi thử nó. Và hiện tại nó dường như không được duy trì hoặc tương thích với WP 3.x
Rarst

ah ... xấu, không kiểm tra nó, tôi đã cài đặt nó một thời gian trước đây. Nhưng này ... có lẽ ai đó có thể sửa nó nếu cần.
edelwater

để thay thế, vui lòng xem wordpress.stackexchange.com/questions
4037 / trên

0

Không, không thể đổi tên thư mục wp-admin với bất kỳ sự thiếu mã hoặc htaccess hack nào,

Trước đây tôi đã làm điều tương tự cho một khách hàng bằng cách thực hiện tìm kiếm thư mục hoàn chỉnh thông qua Coda (trình chỉnh sửa tôi sử dụng) cho thẻ "wp-admin, wp-content ... vv" và tôi xóa "wp-" khỏi các tập tin.

Sau đó, bạn sẽ có thể cài đặt nó nhưng:
Bạn phải làm tương tự với các plugin bạn muốn cài đặt, Bạn phải cập nhật lõi theo cách thủ công bằng cách xóa thẻ "wp-" từ các phiên bản mới.

Trong tất cả các cách tôi không khuyên bạn nên làm một cái gì đó như thế này, hãy để nguyên như vậy và cố gắng thực hiện trang Đăng nhập / Đăng ký / Hồ sơ người dùng để cung cấp cho người dùng / khách hàng của bạn trải nghiệm tốt hơn.

Cristian từ Cozmolabs đã viết một hướng dẫn rất tốt. Bạn có thể chỉnh sửa mã một chút và làm cho nó chạy trong bất kỳ chủ đề WordPress nào.

Bạn cũng có thể thêm một hình thức Đăng từ frontend để Quản trị viên và Người dùng có Khả năng viết một bài đăng có thể làm điều đó từ frontend.

Tại đây bạn có thể xem một ví dụ và mã về cách tạo trang Frontend Post. Bài đăng Front-End

Ngoài ra, bạn có thể xem một số plugin đẹp ở đây cũng làm tương tự với nhiều chức năng hơn.


0

CÁI GÌ VỀ VIỆC LÀM VIỆC WP-ADMIN TỪ IFRAME?

Tạo một trang mới trong bảng điều khiển wp được gọi là "Quản trị viên". ví dụ: tên miền của bạn / quản trị viên /

Bạn có thể tạo một tuyên bố trường hợp với header.php page.phpvà / hoặc footer.phpđể vô hiệu hóa những thứ trên mẫu không cần thiết, sử dụng:

<?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;

Điều này không đẹp, nhưng ít nhất bạn có thể ẩn wp-admin khỏi url. Một cách khác là có thể sử dụng chuyển tiếp tên miền với url mặt nạ được bật.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.