web-dev-qa-db-ja.com

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

Wp-adminフォルダの名前を変更することは可能ですか?

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

カスタムフォルダ名を使用すると、少し安全性が高まり、あいまいさによるセキュリティも向上します。

69
Adam Dempsey

残念ながら、これは不可能ではないし、この{ wp-hackersリストの最近のスレッドこのtracのチケット でわかるようにそれを修正と見なす意欲もないようです。

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

  1. あなたのケースを提示しなさい wp-hackers上 しかしあなたのユースケースがより良く、そして「曖昧さによる安全性」ではないことを前もって注意しておかないでください。

  2. あなたの議論を a trac ticket の中に同じ警告で提示してください。

  3. さらに良いことには、 パッチ をtracにアップロードしてください。作業が既に行われている場合は、「いいえ」と言うよりも「いいえ」と言う方がはるかに多いので、「いいえ」と言う方がはるかに難しいので注意してください。

38
MikeSchinkel

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

曖昧さによるセキュリティは、とにかく本当にセキュリティではありません。

11
Viper007Bond

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

Wordpress管理者の名前を変更するには、2つのステップを踏む必要があります。

次のコードでは、新しいwp-adminの名前としてダッシュボードを使用しています。下のコードのダッシュボードを、新しい管理者の名前に変更します。

まず、あなたは管理者URLを変更したいと思うワードプレスに伝える必要があります。

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見つからないなどの問題が発生する可能性があることに気付いた場合は、.

次に、ワードプレスのルートディレクトリの.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を編集することになると専門家ではないので、これのいくつかは必要ないかもしれません。しかし、私はそれがうまくいかないことに気づいたことは一度もない。

これが全部です。ファイルを作成し、自分のpluginsフォルダまたは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);
}

注:このアプローチは一部のホストではうまく機能するように見えましたが、それでもまだ新しい管理URLにwp-adminリンクをリダイレクトしないという問題がありました。これは私が以下で試したアプローチです。これ以下では動作しませんそれは正しい軌道に乗っていると思います。どのようなフックを使うべきか完全にはわかりません。 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' );
    }
  }
}
11
Bryan Willis

WordPressで正式にサポートされているアプローチは、サイトをルートに保ちながら、WordPressのインストールファイルをサブディレクトリに移動することです。

サイトのURL:http://my-blog.com

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

これはあなたの管理URLを変更することにおいてあなたに完全な自由を与えるわけではありませんが、それはあなたが好きなものでそれをprefixできることを意味します。これはセキュリティの観点からも同様に優れています。また、WordPressのすべてのインストールファイルをユーザーに知られていない場所に移動するという利点もあります。したがって、WordPressを強化する戦略の一部にする必要があります。

WordPressコーデックスから: WordPressに独自のディレクトリを与える

また、このセキュリティスキームはObscure URLと呼ばれていますが、あいまいさによるセキュリティと同じものではありません。 Obscure URLはパスワードと同じくらい完全に有効なセキュリティスキームですが、あいまいなセキュリティによるセキュリティは秘密の証明されていない手順の使用に依存しています。

パスワードと同じ警告が適用されます。カスタムフォルダを7nxnkkugrdzmではなくhappy-snappy-adminのように呼び出します。また、管理者URLが秘密であることをユーザーが認識していることを確認してください。

9
cmc

これについては、実際には非常に良いチュートリアルがあります。

あなたのソースコードからWordPress情報を隠す方法

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

このチュートリアルはあなたのソースコード中の明白な証拠あるいはその表示を変更します、 あなたのサイトからWordPress情報を効果的に削除します

フォルダ名、wp-adminログインURLを変更する方法、およびlogin.phpがメインサイトにリダイレクトされて人々が直接そこに行くことができることを確認する方法を説明します。

7
Graeme

加入者レベルのユーザがwp-adminディレクトリを見ないようにしたい場合は、自分のディレクトリにlogin/registrationページとprofile/editページのスタンドアロンバージョンを作成できます。その後、あなたはhtaccessまたはIP制限を介してあなたの管理フォルダを保護することができます。 (ただし、これを行う場合は、admin-ajaxファイルを例外として使用する必要があります。プラグインによっては、AJAX機能を追加するために使用されるものもあります)。

このアプローチはあなたが望む「あいまいさ」を与えます(それは実際には大したことはしませんが、クライアントとマネージャをより良くします)、そして管理者へのアクセスを制限することによって実際のセキュリティを追加します。加えて、正直なところ、 "/ login"というURLは、 "wp-login.php"よりもずっと見栄えが良いです。

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

6
MathSmath

管理コントロールパネルをロックする1つの方法は、.htaccessルールを利用することです。 wp-adminディレクトリのルートに.htaccessファイルを追加するだけです。このファイルを追加したら、次のルールを追加してすべての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>
2
Josh

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

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

さらに詳しい使い方については、 GitHub Repo をチェックしてください。

1
Carl Alberto

IFRAMEからWPアドミンを使用することについて

"Admin"という名前のwpダッシュボードに新しいページを作成します。例:yourdomain/admin /

header.phppage.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を隠すことができます。もう1つの方法は、マスクURLを有効にしてドメイン転送を使用することです。

0
samjco
0
edelwater

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

過去に私はタグ "wp-admin、wp-content ... etc"をCoda(私が使っているエディタ)経由で完全なフォルダ検索を実行することでクライアントに対しても同じことをしました。ファイル.

その後、あなたはそれをインストールすることができますが:
インストールしたいプラグインについても同じことをする必要があります。新しいバージョンから "wp-"タグをクリアすることでコアを手動で更新しなければなりません。

すべての点で私はあなたにこのようなことをすることをお勧めしません、そのままにして、あなたのユーザー/クライアントにもっと良い経験を与えるためにユーザーログイン/登録/プロフィールページを実装してみてください。

CozmolabsからのCristian は非常に良いチュートリアルを書いています。あなたはコードを少し編集して、それをどんなWordPressテーマでも走らせることができます。

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

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

また、ここでいくつかのNice プラグインを見てみることもできます それはより多くの機能で同じことをします。

0
Philip