it-swarm-vi.tech

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

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 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ứ đó.

69
Adam Dempsey

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ằng cách này chủ đề gầ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 wp-hacker nhưng được báo trước 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 một 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 bạn muố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 cảnh báo trước.)

38
MikeSchinkel

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.

11
Viper007Bond

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. Tuy nhiên, câu trả lời được chọn cho điều này thực sự không phải là 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ồm/link-template.php là mã làm mất hiệu lực url quản trị viên.

Sử dụng bộ lọc admin_url, 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 phần bắt đầ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ó tên new-admin.php và 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ị viên mới. Đây là một cách tiếp cận tôi đã thử dưới đây. Whilecái này bên dưới không hoạt độngTô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 lặp 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' );
    }
  }
}
11
Bryan Willis

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ể tiền tố với 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ằng cách che khuất. URL tối nghĩa là một lược đồ bảo mật hoàn toàn hợp lệ, tốt như mật khẩu, trong khi bảo mật bằng cách che khuất dựa 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ũng được áp dụng 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 phải 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.

9
cmc

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ã nguồn của bạn gương

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 hiển nhiên bằng chứ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.

7
Graeme

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 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 chức năng, um, 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 "/ đăng nhập" 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.

6
MathSmath

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>
2
Josh

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 vào cài đặt WordPress của mình, bạn cũng có thể 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 GitHub Repo của họ để biết cách sử dụng chi tiết hơn:

1
Carl Alberto

CÁI GÌ KHI 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.phppage.php và/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.

0
samjco

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

0
edelwater

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 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 trước kết thúc

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

0
Philip