Wp-admin klasörünü yeniden adlandırmak mümkün müdür?
Bunu yeniden adlandıracağımı biliyorum, ancak kodla desteklenmediği sürece birçok şey bozulur.
Özel bir klasör adı kullanırsam, gizlilik ve benzeri şeylerle güvenliği biraz daha güvenli kılar.
Wp-admin klasörünü yeniden adlandırmak mümkün müdür?
Bunu yeniden adlandıracağımı biliyorum, ancak kodla desteklenmediği sürece birçok şey bozulur.
Özel bir klasör adı kullanırsam, gizlilik ve benzeri şeylerle güvenliği biraz daha güvenli kılar.
Yanıtlar:
Maalesef şu anda mümkün değil ve wp-hackerlar listesinde ve bu bilette trac'teki bu konu ile görebileceğiniz gibi bir değişiklik olarak kabul edilecek gibi görünmüyor .
Bunun tekrar gözden geçirilmesini gerçekten görmek istersen şunu öneririm:
Wp hacker'lar için davanızı sunun ancak kullanım durumunuz için uyarılsanız iyi olur, "belirsizlik yoluyla güvenlik" olmasa iyi olur, yoksa yukarıdaki gibi düşürülür.
Argümanınızı aynı uyarıda bulunan trac biletinde sunun .
Daha da iyisi, istediğiniz işlevselliği sağlayan trac'e bir yama yükleyin . İşin daha önce yapıldığı zamanlarda hayır demek daha zordur (ama elbette, "evet" demekten çok daha sık "hayır" demeyi tercih ederler, bu yüzden uyarılmalıdır.)
Hayır, klasörü yeniden adlandıramazsınız. Yol, WordPress'in kaynağı boyunca birden fazla konumda kodlanmıştır.
Müstehcenlik yoluyla güvenlik zaten güvenlik değildir.
İnsanlar bu soruyu sormaya devam ediyor, ancak insanlar bunu bir kopya olarak işaretlemeye devam ediyor. Ancak bunun için seçilen cevap, sorunun gerçekten bir cevabı değil.
WordPress admin'i yeniden adlandırmak için iki adım atmanız gerekir.
Aşağıdaki kodda, yeni wp-admin'imin adı olarak gösterge panosunu kullanıyorum. Aşağıdaki koddaki gösterge tablosunu yeni yöneticinize adlandırmak istediğiniz şekilde değiştirin.
Öncelikle, yönetici URL'sini değiştirmek istediğinizi wordpress'e söylemeniz gerekir.
Satırda 2558 wp-includes / link-template.php yönetici url dertermines koddur.
admin_url
Filtreyi kullanarak, yönetici URL'sini aşağıdaki işlevle başarılı bir şekilde değiştirebilirsiniz:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Yeni URL’nizin ne olduğunu görmek için bunu yaparak test edebilirsiniz:
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' );
Ancak, yönetici tıklandığında her şeyin işe yaramadığını ve bağlantıların bazılarının 404 bulunamadığını veya benzer bir şey verebileceğini fark ederseniz.
İkinci olarak, wordpress kök dizininizdeki .htaccess dosyasını değiştirin ve başka bir şeyden önce başlangıçtakileri ekleyin.
#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
Şimdi, htaccess düzenleme konusunda uzman değilim, bu yüzden bazıları gerekli olmayabilir. Ancak, çalışmamayı asla bulamadım.
İşte her şey. Bir dosya oluşturun ve eklentiler klasörünüze veya mu-plugins klasörünüze bırakın. (her pano örneğini tercih ettiğiniz yönetici URL'sine değiştirmeyi unutmayı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');
Sorunlar?
Bu metodu kullanarak bir yılı aşkın bir süredir kullanmadım. Wp-admin'in hala ne tür bir berbat işleyeceğini farkedebilirsiniz, ancak bu her şeyden çok bir önlemdir. Wp-admin'i engellemeye veya yönlendirmeye çalışırken yüklenmeyecek bazı yerlerde wp-admin kodunu yazan bazı kötü yazılmış eklentilerim vardı. Bunu htaccess ile yapmanın bir yolu olduğundan eminim, ama başarılı bir şekilde çözemedim. Ayrıca, bu multisite veya hiç böyle bir şey üzerinde test edilmemiştir.
Bu oldukça benzer, ancak nedense yukarıdaki cevabım denediğim her sunucuda işe yaramadı.
a ekle .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Mu-plugins klasöründe bir dosya oluşturun new-admin.php
ve buraya şunu ekleyin:
<?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);
}
Not: Bu yaklaşım bazı ev sahiplerinde daha iyi çalışıyor gibi gözükse de, wp-admin bağlantılarını yeni yönetici url'sine yönlendirmeme sorunu vardı. İşte aşağıda denediğim bir yaklaşım. Bu işe yaramazken, bence doğru yolda. Hangi kancanın kullanılacağından emin değilim. Htaccess daha iyi bir alternatif olabilir ama ben bu şekilde denediğimde yönlendirici döngüler elde etmeye devam ettim.
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
yerine filtreyi kullanarak aşağı doğru deneyin admin_url
. Oldukça iyi iş gibi görünüyor.
Resmen WordPress tarafından desteklenen bir yaklaşım, WordPress kurulum dosyalarının bir alt dizine taşınması ve sitenin kökünde tutulmasıdır.
Site URL'si: http://my-blog.com
Yönetici URL’si: http://my-blog.com/7nxnkkugrdzm/wp-admin
Bu, yönetici URL'nizi değiştirmede size tam bir özgürlük sunmamakla birlikte, istediğiniz herhangi bir şeyi önekleyebileceğiniz anlamına gelir . Bu, güvenlik açısından da iyidir. Ayrıca, tüm WordPress kurulum dosyalarını kullanıcılar tarafından bilinmeyen bir yere taşıma avantajına sahiptir, bu nedenle herhangi bir wordpress sertleştirme stratejisinin bir parçası olmalıdır.
WordPress Kodeksinden: WordPress'e Kendi Dizini Vermek
Ayrıca, bu güvenlik şeması Gizli URL olarak adlandırılırken , belirsizliğin güvenlikle aynı olmadığını unutmayın . Gizli URL , geçerli bir şekilde geçerli bir güvenlik şemasıdır ve bir şifre kadar iyidir; ancak gizlilikten kaynaklanan güvenlik gizli kanıtlanmamış prosedürleri kullanmaya dayanır.
Aynı uyarılar parolalarda olduğu gibi uygulanır: Özel klasörü 7nxnkkugrdzm
değil, buna benzer bir şeyi arayın happy-snappy-admin
. Ayrıca, kullanıcılarınızın yönetici URL'sinin bir sır olduğunu bildiğinden emin olun.
Bu konuda gerçekten çok iyi bir eğitim var:
WordPress Bilgilerini Kaynak Kod aynanızdan Gizleme
Wp içeriğinin nasıl yeniden adlandırılacağı, wp-admin'in yeniden adlandırılması ve generator etiketinin WordPress'ten nasıl çıkarılacağı dahildir.
Bu eğitim, WordPress bilgilerini sitenizden etkin bir şekilde kaldırarak , kaynak kodunuzdaki bariz kanıtları veya göstergelerini değiştirecektir .
Bu, klasör adının, wp-admin giriş URL'sinin nasıl değiştirileceğini ve login.php'nin, insanların doğrudan oraya gidebilmesi için ana siteye yönlendirildiğinden emin olduğunu açıklar.
Abone düzeyinde kullanıcıların wp-admin dizinini görmesini engellemek istiyorsanız, giriş / kayıt ve profil / düzenleme sayfalarının kendi sürümlerinde bağımsız sürümleri oluşturabilirsiniz. Ardından, yönetici klasörünüzü htaccess veya IP kısıtlamasıyla koruyabilirsiniz. (Bunu yaparsanız da, bazı eklentiler AJAX işlevselliği eklemek için kullandığından admin-ajax dosyası için bir istisna yapmanız gerekir).
Bu yaklaşım, istediğiniz "belirsizliği" sağlar (bu gerçekten çok fazla bir şey yapmaz, ancak müşterileri ve yöneticileri daha iyi hissettirir) ve ayrıca yöneticiye erişimi sınırlayarak gerçek bir güvenlik sağlar. Artı, dürüst olmak gerekirse, sadece "/ login" yazan bir URL "wp-login.php" den çok daha güzel görünüyor.
Bunun sitenizi kurşun geçirmez yapmadığını söylemeden geçmesi gerekir. Ama bu güzel, temel bir gelişme.
Yönetici kontrol panelini kilitlemenin bir yolu .htaccess kurallarını kullanmaktır. Wp-admin dizininin kök dizinine bir .htaccess dosyası eklemeniz yeterli. Bu dosyayı ekledikten sonra, tüm IP adreslerini reddetmek ve yalnızca IP adresinize izin vermek için aşağıdaki kuralı eklemeniz yeterlidir:
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 kurulumunuza ek güvenlik katmanı eklemek amacıyla wp-admin'i yeniden adlandırmak istiyorsanız, Roots / Bedrock WordPress Boilerplate'i de deneyebilirsiniz . Web dışı dosyalara erişimi sınırlamak için web kökünün izole edilmesine yardımcı olabilir. Ayrıca, tüm WordPress çekirdeğini, wp-content / to app / / / / / / / / / ad komutları gibi yeniden adlandırmak gibi kendi alt dizinine yerleştirerek / güvenlik altına almanıza yardımcı olabilir:
GitHub Repo'larını daha ayrıntılı bir kullanım için de kontrol edebilirsiniz :
Http://wordpress.org/extend/plugins/stealth-login/ adresini ziyaret edin, bu size yardımcı olabilir.
Hayır, wp-admin klasörünü herhangi bir kısa kod veya htaccess hackiyle yeniden adlandırmak mümkün değildir,
Geçmişte, "wp-admin, wp-content ... etc" etiketi için Coda (kullandığım düzenleyici) üzerinden tam bir klasör araması yaparak bir müşteri için aynı şeyi yaptım ve "wp-" yi Dosyalar.
Bundan sonra onu kurabileceksiniz ancak:
Yüklemek istediğiniz eklentilerle aynı işlemi yapmanız gerekiyor, "wp-" etiketini yeni sürümlerden temizleyerek çekirdeği el ile güncellemelisiniz.
Size böyle bir şey yapmanızı önermediğim tüm yollarla, olduğu gibi bırakın ve kullanıcılarınıza / müşterilerinize daha iyi bir deneyim sunmak için bir Kullanıcı Girişi / Kayıt / Profil sayfasını uygulamaya çalışın.
Cozmolabs'dan Cristian, çok iyi bir rehber yazdı . Kodu biraz düzenleyebilir ve herhangi bir WordPress temasında çalıştırabilirsiniz.
Ayrıca bir ön formdan bir Posta formu ekleyebilir, böylece Yönetici ve bir gönderi yazmak için Yetenekleri Olan Kullanıcılar ön uçtan yapabilir.
Burada bir Frontend Post sayfasının nasıl oluşturulacağına dair bir örnek ve kod görebilirsiniz. Front-End Post Gönderme
Ayrıca, burada daha fazla işlevsellik ile aynı olan bazı güzel eklentilere göz atabilirsiniz .
IFRAME'DAN WP-ADMIN'DEN ÇALIŞMA HAKKINDA NE?
"Yönetici" adlı wp panosunda yeni bir sayfa yapın. örneğin: alan adınız / admin /
Aşağıdakileri kullanarak header.php
page.php
ve için veya / veya footer.php
şablonda olmayan şeyleri devre dışı bırakmak için bir vaka ifadesi yapabilirsiniz :
<?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;
Bu hoş değil, ama bir ölçüde wp-admin'i url'den gizleyebilirsiniz. Başka bir yol, alan adı iletmeyi maske URL'si etkin durumdayken kullanmaktır.
+1
"hayır" demeyi tercih ettikleri gibi, "evet" dediklerinden çok daha sık, bu yüzden uyarılmalıdır :)