回答:
残念ながら、wp-hackersリストにあるこの最近のスレッドとtracにあるこのチケットでわかるように、現時点では不可能であり、変更と見なすつもりはないようです。
あなたが本当にこれを見たいと思うなら、私は提案します:
ケースをwp-hackersに提示しますが、ユースケースは「隠蔽によるセキュリティ」ではなく、より良いものであることを事前に注意してください。そうしないと、上記のように撃downされます。
同じ警告とともに、tracチケットで議論を提示します。
さらに良いことに、目的の機能を有効にするパッチをtracにアップロードします。作業が既に完了している場合は、「いいえ」と言うのははるかに困難です(ただし、もちろん、「はい」と言うよりも「いいえ」と言う方が好みなので、事前に注意してください)。
いいえ、フォルダの名前を変更することはできません。パスは、WordPressのソース全体の複数の場所にハードコードされています。
あいまいさによるセキュリティは、とにかく実際のセキュリティではありません。
人々はこの質問をし続けますが、人々はそれを重複としてマークし続けます。ただし、これに対する選択された答えは、実際には質問に対する答えではありません。
wordpress adminの名前を変更するには、2つの手順を実行する必要があります。
次のコードでは、新しいwp-adminの名前としてダッシュボードを使用しています。以下のコードのダッシュボードを、新しい管理者の名前に変更します。
まず、管理者のURLを変更することをwordpressに伝える必要があります。
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 not foundまたは類似したものになる場合があります。
次に、wordpressのルートディレクトリで.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インストールファイルをユーザーが知らない場所に移動するという利点もあるため、ワードプレス強化戦略の一部となるはずです。
WordPress Codexから:WordPressに独自のディレクトリを与える
また、このセキュリティスキームはObscure URLと呼ばれていますが、obscurityによるセキュリティと同じではないことに注意してください。あいまいなURLは、パスワードと同じくらい完全に有効なセキュリティスキームですが、あいまいさによるセキュリティは、証明されていない秘密の手順を使用することに依存しています。
ただし、パスワードの場合と同じ注意事項が適用されます。カスタムフォルダーをのようなもの7nxnkkugrdzm
ではなく、のように呼び出しますhappy-snappy-admin
。また、ユーザーが管理者URLが秘密であることを認識していることを確認してください。
これに関する非常に良いチュートリアルが実際にあります:
wp-contentの名前を変更する方法、wp-adminの名前を変更する方法、およびWordPressからジェネレータータグを削除する方法が含まれます。
このチュートリアルでは、ソースコード内の明白な証拠または兆候を変更し、サイトからWordPress情報を効果的に削除します。
フォルダー名、wp-adminログインURLを変更し、login.phpがメインサイトにリダイレクトされるようにして、ユーザーがそこに直接アクセスできるようにする方法を説明します。
サブスクライバレベルのユーザーがwp-adminディレクトリを表示できないようにする場合は、独自のディレクトリにログイン/登録ページとプロファイル/編集ページのスタンドアロンバージョンを作成できます。次に、htaccessまたはIP制限を使用してadminフォルダーを保護できます。(ただし、これを行う場合は、admin-ajaxファイルの例外を作成する必要があります。一部のプラグインは、AJAX機能を追加するために使用します)。
このアプローチは、必要な「あいまいさ」を与え(実際にはあまり効果的ではありませんが、多くの場合、クライアントとマネージャーの気分を良くします)、管理者へのアクセスを制限することで本当のセキュリティを追加します。さらに、正直なところ、「/ login」というURLの方が「wp-login.php」よりも見栄えがよくなります。
言うまでもなく、これはあなたのサイトを防弾にするものではありません。しかし、それは素晴らしい、基本的な機能強化です。
管理コントロールパネルをロックダウンする1つの方法は、.htaccessルールを利用することです。.htaccessファイルをwp-adminディレクトリのルートに追加するだけです。このファイルを追加したら、次のルールを追加してすべての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を試すこともできます。Webルートを分離して、非Webファイルへのアクセスを制限するのに役立ちます。また、wp-content /の名前をapp /に変更するなど、独自のサブディレクトリに置くことで、WordPressコア全体を整理/保護するのに役立ちます。これらの追加機能もあります。
より詳細な使用法については、GitHubリポジトリを確認することもできます。
見てみましょう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ダッシュボードに新しいページを作成します。例:yourdomain / admin /
header.php
page.php
およびfooter.php
を使用してcaseステートメントを作成し、テンプレートを使用して不要なものを無効にすることができます。
<?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;
これはきれいではありませんが、少なくともURLからwp-adminを隠すことができます。別の方法は、マスクURLを有効にしてドメイン転送を使用することです。
+1
彼らは「はい」と言うよりも頻繁に「いいえ」と言うことを