wp-adminフォルダーの名前を変更できますか?


70

wp-adminフォルダーの名前を変更することはできますか?

名前を変更することはできますが、コードでサポートされていない限り、多くのことが壊れます。

カスタムフォルダー名を使用する場合、それはわずかに安全性を高めます。

回答:


39

残念ながら、wp-hackersリストにあるこの最近のスレッドtracにあるこのチケットでわかるように、現時点では不可能であり、変更と見なすつもりはないようです。

あなたが本当にこれを見たいと思うなら、私は提案します:

  1. ケースをwp-hackersに提示しますが、ユースケースは「隠蔽によるセキュリティ」ではなく、より良いものであることを事前に注意してください。そうないと、上記のように撃downされます。

  2. 同じ警告とともに、tracチケットで議論を提示します。

  3. さらに良いことに、目的の機能を有効にするパッチをtracにアップロードます。作業が既に完了している場合は、「いいえ」と言うのははるかに困難です(ただし、もちろん、「はい」と言うよりも「いいえ」と言う方が好みなので、事前に注意してください)。


10
+1 彼らは「はい」と言うよりも頻繁に「いいえ」と言うことを
好む

11

いいえ、フォルダの名前を変更することはできません。パスは、WordPressのソース全体の複数の場所にハードコードされています。

あいまいさによるセキュリティは、とにかく実際のセキュリティではありません。


21
そして、マジックナンバーや文字列のハードコーディングのような悪いプログラミングプラクティスを変更しないのは、せいぜい怠laな言い訳です。
ハクレ

6
@hakre +100 Btw、「wp- *」フォルダを非表示にする方法を尋ねるほとんどの人は、必ずしもセキュリティを探しているわけではなく、実際に不明瞭さを探しています。彼らはサイトの分析をより労力を要するアクティビティにしようとしています。
ビクターファラズダギ

3
実際には、あいまいさによるセキュリティではありません。有効なセキュリティ手法である、あいまいなURLです。詳細については、以下の回答を参照してください。
cmc

1
さて、私は引数の新鮮なセットでフォローアップしようとしましたが、答えは「これは本による強力な修正です」とややこっけいな「Gmailログインは不明瞭なURLでもありません」でした。技術的な理由も説明も議論もありません。彼らはそれをしません。
cmc

1
WordpressはGmailよりもはるかに由緒正しい。一つの理由は、ワードプレスがオープンソースであることです。誰もがコードを知っています。あいまいさによるセキュリティは、とにかく本当にセキュリティではありませんか?しかし、私たちはワードプレスのコーダーではありません。オープンソースです。私の見解では、あいまいさは安全性を高めるのに役立ちます。なぜ人々は暗号化されたパスワードを使用するのですか?このロジックによれば、暗号化パスワードは使用されません...年...そして、私の6-7のGmailアカウントのいずれもこれまでの15年間にハッキングされていない...
web2students.com

11

人々はこの質問をし続けますが、人々はそれを重複としてマークし続けます。ただし、これに対する選択された答えは、実際には質問に対する答えではありません。

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

ここにクラスに書かれた同様のアプローチがあります:wordpress.stackexchange.com/a/7832/76440
majick

@makickと答えてくれて嬉しいです!それは素晴らしい答えであり、実際にいくつかのアイデアを得た場所でしたが、多くの場合、私にとってはうまくいかないようでした。私がまだ理解しようとしていることの1つは、URLに手動で入力されたすべてのwp-adminリンクをリダイレクトする方法です。私はそれを理解できないようです。機会があれば、のsite_url代わりにフィルターを使用して、下に向かって更新の回答を試してくださいadmin_url。それはかなりうまくいくようです。
ブライアンウィリス

9

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が秘密であることを認識していることを確認してください。


7

これに関する非常に良いチュートリアルが実際にあります:

ソースコード ミラーからWordPress情報を隠す方法

wp-contentの名前を変更する方法、wp-adminの名前を変更する方法、およびWordPressからジェネレータータグを削除する方法が含まれます。

このチュートリアルでは、ソースコード内の明白な証拠または兆候を変更し、サイトからWordPress情報を効果的に削除します

フォルダー名、wp-adminログインURLを変更し、login.phpがメインサイトにリダイレクトされるようにして、ユーザーがそこに直接アクセスできるようにする方法を説明します。


6

サブスクライバレベルのユーザーがwp-adminディレクトリを表示できないようにする場合は、独自のディレクトリにログイン/登録ページとプロファイル/編集ページのスタンドアロンバージョンを作成できます。次に、htaccessまたはIP制限を使用してadminフォルダーを保護できます。(ただし、これを行う場合は、admin-ajaxファイルの例外を作成する必要があります。一部のプラグインは、AJAX機能を追加するために使用します)。

このアプローチは、必要な「あいまいさ」を与え(実際にはあまり効果的ではありませんが、多くの場合、クライアントとマネージャーの気分を良くします)、管理者へのアクセスを制限することで本当のセキュリティを追加します。さらに、正直なところ、「/ login」というURLの方が「wp-login.php」よりも見栄えがよくなります。

言うまでもなく、これはあなたのサイトを防弾にするものではありません。しかし、それは素晴らしい、基本的な機能強化です。


2

管理コントロールパネルをロックダウンする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>

1

WordPressインストールにセキュリティ層を追加する目的でwp-adminの名前を変更する場合は、Roots / Bedrock WordPress Boilerplateを試すこともできます。Webルートを分離して、非Webファイルへのアクセスを制限するのに役立ちます。また、wp-content /の名前をapp /に変更するなど、独自のサブディレクトリに置くことで、WordPressコア全体を整理/保護するのに役立ちます。これらの追加機能もあります。

  • Composerによる依存関係管理
  • 環境固有のファイルを使用した簡単なWordPress設定
  • Dotenvを使用した環境変数
  • muプラグインのオートローダー(muプラグインとして通常のプラグインを使用)
  • 強化されたセキュリティ(wp-password-bcryptで分離されたWebルートと安全なパスワード)

より詳細な使用法については、GitHubリポジトリを確認することもできます。


0

見てみましょうhttp://wordpress.org/extend/plugins/stealth-login/これはあなたを助けることを。


試したときに、そのプラグインに問題がありました。そして、現在、維持またはWP 3.xのと互換性があるようには見えません
Rarst

ああ...悪いことに、それをチェックしなかった、私はしばらく前にそれを削除した。しかし、ちょっと...本当に必要な場合は誰かがそれを修正できるかもしれません。
エデルウォーター


0

いいえ、短いコードまたはhtaccessハックでwp-adminフォルダーの名前を変更することはできません。

過去に、「wp-admin、wp-content ... etc」タグに対してCoda(私が使用するエディター)を介して完全なフォルダー検索を実行し、クライアントから「wp-」を削除して、ファイル。

その後、インストールできますが、インストールする
プラグインで同じことを行う必要があります。新しいバージョンから「wp-」タグをクリアして、コアを手動で更新する必要があります。

すべての方法で、このようなことを行うことはお勧めしません。そのままにして、ユーザーログイン/登録/プロフィールページを実装して、ユーザー/クライアントのエクスペリエンスを向上させてください。

Cozmolabsの Cristianは、非常に優れたチュートリアルを書いています。コードを少し編集して、WordPressテーマで実行できます。

フロントエンドから投稿フォームを追加して、投稿を作成する機能を持つ管理者とユーザーがフロントエンドから投稿できるようにすることもできます。

ここで、フロントエンド投稿ページの作成方法の例とコードを見ることができます。 フロントエンド投稿後

また、より多くの機能で同じことを行ういくつかの素晴らしいプラグインをここで見ることができます。


0

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を有効にしてドメイン転送を使用することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.