it-swarm-id.com

Bisakah saya mengganti nama folder wp-admin?

Apakah mungkin untuk mengganti nama folder wp-admin?

Saya tahu saya bisa mengganti nama saja, tetapi kecuali jika didukung oleh kode banyak hal akan rusak.

Jika saya menggunakan nama folder khusus, itu akan membuatnya sedikit lebih aman, keamanan oleh ketidakjelasan dan semua itu.

69
Adam Dempsey

Sayangnya saat ini tidak memungkinkan dan tampaknya tidak akan menganggapnya sebagai modifikasi seperti yang Anda lihat dengan utas terbaru pada daftar wp-hacker dan tiket ini di trac .

Jika Anda benar-benar ingin melihat ini dilihat kembali, saya sarankan:

  1. Hadir kasing Anda pada wp-hackers tetapi lebih dulu gunakan kasing Anda lebih baik dan tidak "keamanan melalui ketidakjelasan" atau itu akan ditembak jatuh seperti di atas.

  2. Sampaikan argumen Anda di tiket trac dengan peringatan yang sama.

  3. Lebih baik lagi, unggah tambalan ke trac yang memungkinkan fungsionalitas yang Anda inginkan. Jauh lebih sulit untuk mengatakan tidak ketika pekerjaan sudah dilakukan (tapi tentu saja, mereka memang lebih suka mengatakan "tidak" lebih sering daripada mengatakan "ya" jadi sudah diperingatkan sebelumnya.)

38
MikeSchinkel

Tidak, Anda tidak dapat mengganti nama folder. Jalur ini dikodekan di beberapa lokasi di seluruh sumber WordPress.

Keamanan melalui ketidakjelasan sebenarnya bukan keamanan.

11
Viper007Bond

Orang-orang terus menanyakan pertanyaan ini, tetapi orang-orang terus menandainya sebagai duplikat. Namun jawaban yang dipilih untuk ini, sebenarnya bukan jawaban untuk pertanyaan itu.

Untuk mengganti nama admin wordpress Anda perlu mengambil dua langkah.

Dalam kode berikut saya menggunakan dasbor sebagai nama wp-admin baru saya. Ubah dasbor dalam kode di bawah ini menjadi apa pun yang Anda ingin beri nama admin baru Anda.

Pertama Anda harus memberi tahu wordpress Anda ingin mengubah url admin.

Pada baris 2558 wp-include/link-template.php adalah kode yang membatalkan perintah url admin.

Menggunakan filter admin_url Anda berhasil mengubah url admin dengan fungsi berikut:

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

Anda dapat menguji untuk melihat apa url baru Anda dengan melakukan ini:

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

Namun, jika Anda akan melihat ketika mengklik melalui admin bahwa tidak semuanya berfungsi dan beberapa tautan mungkin memberi Anda 404 tidak ditemukan atau sesuatu yang serupa.

Kedua, ubah .htaccess di direktori root wordpress Anda dan tambahkan yang berikut di awal sebelum yang lainnya.

#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

Sekarang, saya bukan ahli dalam hal mengedit .htaccess sehingga beberapa dari ini mungkin tidak diperlukan. Namun, saya tidak pernah menemukan itu tidak berhasil.

Ini semuanya. Buat file dan letakkan di folder plugins atau folder mu-plugins Anda. (ingat untuk mengubah setiap instance dasbor ke url admin pilihan Anda)

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

Masalah?

Saya belum punya lebih dari setahun menggunakan metode ini. Anda mungkin memperhatikan bahwa wp-admin masih akan bekerja dengan jenis yang menyebalkan, tetapi lebih merupakan tindakan pencegahan daripada apa pun. Saya memiliki beberapa plugin yang ditulis dengan buruk yang telah hardcoded wp-admin di beberapa tempat yang tidak mau memuat ketika mencoba untuk memblokir atau mengarahkan ulang wp-admin. Saya yakin ada cara untuk melakukan ini dengan htaccess, tapi saya belum berhasil menemukannya. Juga, ini belum diuji pada multisite atau yang seperti itu sebelumnya.

Pembaruan: Pendekatan Alternatif

Ini sangat mirip, tetapi untuk beberapa alasan jawaban saya di atas tidak bekerja pada setiap Host yang saya coba.

Tambahkan ke .htaccess

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

Buat file di folder mu-plugins bernama new-admin.php dan tambahkan ini di sana:

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

Catatan: Pendekatan ini tampaknya berfungsi lebih baik pada beberapa host, tetapi masih memiliki masalah untuk tidak mengarahkan kembali tautan wp-admin ke url admin baru. Inilah pendekatan yang saya coba di bawah ini. Sementaraini di bawah ini tidak berfungsiSaya pikir itu di jalur yang benar. Saya tidak sepenuhnya yakin apa yang digunakan untuk kait. htaccess mungkin menjadi alternatif yang lebih baik tetapi saya terus mendapatkan pengalihan ketika saya mencoba cara itu.

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

Suatu pendekatan yang secara resmi didukung oleh WordPress adalah memindahkan file instalasi WordPress ke dalam sub-direktori, sambil menjaga situs tetap di root, seperti:

URL situs: http://my-blog.com

URL Admin: http://my-blog.com/7nxnkkugrdzm/wp-admin

Meskipun ini tidak memberi Anda kebebasan penuh dalam mengubah url admin Anda, itu berarti Anda dapat awalan dengan apa pun yang Anda suka. Ini sama baiknya dari sudut pandang keamanan. Ini juga memiliki manfaat memindahkan semua file instalasi WordPress ke lokasi yang tidak diketahui pengguna, sehingga harus menjadi bagian dari strategi pengerasan wordpress.

Dari Codex WordPress: Memberikan WordPress Direktori Sendiri

Juga, perhatikan bahwa meskipun skema keamanan ini disebut URL tidak jelas, itu tidak sama dengan keamanan oleh ketidakjelasan. URL tidak jelas adalah skema keamanan yang benar-benar valid yang sama baiknya dengan kata sandi, sementara keamanan oleh ketidakjelasan mengandalkan penggunaan prosedur rahasia yang belum terbukti.

Peringatan yang sama berlaku seperti halnya dengan kata sandi: Panggil folder khusus itu sesuatu seperti 7nxnkkugrdzm, bukan happy-snappy-admin. Juga, pastikan pengguna Anda mengetahui url admin adalah rahasia.

9
cmc

Sebenarnya ada tutorial yang sangat bagus tentang ini di sini:

Cara Menyembunyikan Info WordPress dari Kode Sumber Anda mirror

Termasuk cara mengubah nama konten-wp, mengubah nama wp-admin, dan menghapus tag generator dari WordPress.

Tutorial ini akan mengubah jelas bukti atau indikasi itu dalam kode sumber Anda, secara efektif menghapus info WordPress dari situs Anda .

Ini menjelaskan cara mengubah nama folder, url login wp-admin, dan memastikan bahwa login.php mengalihkan ke situs utama sehingga orang dapat pergi ke sana secara langsung.

7
Graeme

Jika Anda ingin mencegah pengguna tingkat pelanggan dari melihat direktori wp-admin, Anda dapat membuat versi mandiri dari halaman login/registrasi dan profil/edit di direktori mereka sendiri. Kemudian, Anda dapat melindungi folder admin Anda melalui htaccess atau pembatasan IP. (Meskipun jika Anda melakukan ini, Anda harus membuat pengecualian untuk file admin-ajax, karena beberapa plugin menggunakannya untuk menambah, um, fungsiAJAX _).

Pendekatan ini memberi Anda "ketidakjelasan" yang Anda inginkan (yang sebenarnya tidak banyak berpengaruh, tetapi sering membuat klien dan manajer merasa lebih baik), dan juga menambahkan beberapa keamanan nyata dengan membatasi akses ke admin. Plus, jujur, URL yang hanya mengatakan "/ login" terlihat jauh lebih bagus daripada "wp-login.php".

Seharusnya tanpa mengatakan bahwa ini tidak membuat situs Anda antipeluru. Tapi itu peningkatan yang bagus dan mendasar.

6
MathSmath

Salah satu cara untuk mengunci panel kontrol administratif adalah dengan memanfaatkan aturan .htaccess. Cukup tambahkan file .htaccess ke root direktori wp-admin. Setelah Anda menambahkan file ini, tambahkan saja aturan berikut untuk menolak semua alamat IP dan hanya mengizinkan IP Anda:

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

Jika Anda ingin mengganti nama wp-admin dengan tujuan menambahkan lapisan keamanan tambahan untuk instalasi WordPress Anda, Anda juga dapat mencoba Roots/Bedrock WordPress Boilerplate . Ini dapat membantu mengisolasi root web untuk membatasi akses ke file non-web. Ini juga dapat membantu dalam mengatur/mengamankan seluruh inti WordPress dengan meletakkannya di subdirektori sendiri seperti mengganti nama wp-content/ke aplikasi/serta fitur tambahan ini:

  • Manajemen ketergantungan dengan Komposer
  • Konfigurasi WordPress yang mudah dengan file khusus lingkungan
  • Variabel lingkungan dengan Dotenv
  • Autoloader untuk mu-plugins (gunakan plugins biasa sebagai mu-plugins)
  • Keamanan yang ditingkatkan (root web terpisah dan kata sandi aman dengan wp-password-bcrypt)

Anda juga dapat memeriksa Repo GitHub untuk penggunaan yang lebih terperinci:

1
Carl Alberto

BAGAIMANA TENTANG KERJA WP-ADMIN DARI IFRAME?

Buat halaman baru di dasbor wp yang disebut "Admin". mis .: domain Anda/admin /

Anda dapat membuat pernyataan kasus dengan header.phppage.php dan/atau footer.php untuk menonaktifkan hal-hal pada template yang tidak diperlukan, menggunakan:

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

Ini tidak cantik, tetapi setidaknya Anda dapat menyembunyikan wp-admin dari url. Cara lain adalah dengan menggunakan penerusan domain dengan url mask diaktifkan.

0
samjco

Lihatlah http://wordpress.org/extend/plugins/stealth-login/ ini dapat membantu Anda.

0
edelwater

Tidak, tidak mungkin untuk mengganti nama folder wp-admin dengan kekurangan kode atau hack htaccess,

Di masa lalu saya melakukan hal yang sama untuk klien dengan melakukan pencarian folder lengkap melalui Coda (editor saya gunakan) untuk tag "wp-admin, wp-content ... etc" dan saya menghapus "wp-" dari file.

Setelah itu Anda akan dapat menginstalnya tetapi:
Anda harus melakukan hal yang sama dengan plugin yang ingin Anda instal, Anda harus memperbarui inti secara manual dengan menghapus tag "wp-" dari versi baru.

Dalam semua hal yang saya tidak sarankan Anda untuk melakukan sesuatu seperti ini, biarkan apa adanya dan cobalah untuk mengimplementasikan halaman Login/Registrasi/Profil Pengguna untuk memberikan pengalaman yang lebih baik kepada pengguna/klien Anda.

Cristian dari Cozmolabs telah menulis tutorial yang sangat bagus. Anda dapat mengedit kode sedikit dan membuatnya berjalan di tema WordPress apa pun.

Anda juga dapat menambahkan formulir Posting dari frontend sehingga Admin dan Pengguna dengan Kemampuan untuk menulis posting dapat melakukannya dari frontend.

Di sini Anda dapat melihat contoh dan kode tentang cara membuat halaman Frontend Post. Pengajuan Pos Front-End

Anda juga dapat melihat beberapa plugin Nice di sini yang melakukan hal yang sama dengan lebih banyak fungsi.

0
Philip