フロントエンドを無効にしてCMSとしてのみ使用しますか?


18

私はWordPressデータベースとバックエンドを使用してバンドのWebサイトのニュースを管理していますが、すべてがうまく機能していますが、WordPressのフロントエンド自体を無効にしたいと思います。

WordPressのインストールがインストールされて/wordpress/おり、明らかにadminセクションが下にあり/wordpress/wp-admin/ます。

管理セクションに影響を与えることなく、誰かが* un * setup WordPressサイト自体にアクセスするのを制限する最良の方法は何でしょうか?

どちらかといえば、ウェブサイトの適切なホームページ(domain.com/)にリダイレクトするだけです。

回答:


19

フロントエンドのみがにリダイレクトされるようdomain.comにするには、PHP header()関数を使用するテーマを作成します。

  • redirectまたは何かと呼ばれるフォルダーを作成します。
  • 2つのファイルをフォルダーに追加します:style.cssおよびindex.php (有効なWPテーマに必要)
  • ではstyle.css、このようなものを追加します。

    / *
    テーマ名:リダイレクト
    説明:フロントエンドをdomain.comにリダイレクトします
    * /

  • これにindex.php追加:

    header( "Location:http : //domain.com ");

  • フォルダーをテーマディレクトリにアップロードし、管理UIでアクティブにします。

頭の中で光が消えたのはおかしい。リダイレクトするテーマを作ってみませんか?ありがとう。
ニックベッドフォード

1
一部には明らかでなく、index.phpの最初の行だったときに、これは私だけのために働いて<?php
フィンズベリー

8

「空のデータ」でテーマを使用します。2つのファイルをディレクトリに入れてから、「テーマ」を有効にします。

style.css

/*
Theme Name: turn off frontend
Theme URI: 
Description: 
Author: 
Version: 
License: GNU 
License URI: 
Tags:
*/

およびindex.php

<?php
exit;

私はこのソリューションが気に入っています。この方法で、完全に機能するテーマに簡単に切り替えることができます。さらに<?php wp_redirect(site_url('wp-admin'));die();、exitの代わりに何かを追加して、特定のリソースに自動的にリダイレクトすることができます。
MiCc83

3

これを.htaccessに入れ、利用可能にしたいパスをリストしてください:

RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{REQUEST_URI} !^/wp-includes
RewriteCond %{REQUEST_URI} !^/wp-login
RewriteCond %{REQUEST_URI} !^/wp-content/uploads
RewriteCond %{REQUEST_URI} !^/wp-content/plugins
RewriteCond %{REQUEST_URI} !^/wp-content/cache
RewriteRule (.*) http://yournewdomain.com/ [R=301,L]

2

これをルートディレクトリの.htaccessに追加します

redirect 301 /wordpress http://www.domain.com

編集:これは本当に簡単な修正であり、より良い解決策があるかもしれません。別の方法は、functions.phpファイルに関数を追加し、wp_head()で呼び出されてそのようにリダイレクトすることです。この方法を使用すると、簡単なIPチェックで表示することもできます。


これは副作用がある/wordpress/wp-admin今にリダイレクトする//wp-admin
ニック・ベッドフォード

1

これはすでに受け入れられている回答を含むかなり古い質問ですが、特にこれらの解決策のどれも役に立たなかったので、誰かがこれを役に立つと思うかもしれません。

function redirect_to_backend() {
    if( !is_admin() ) {
        wp_redirect( site_url('wp-admin') );
        exit();
    }
}
add_action( 'init', 'redirect_to_backend' );

コード自体は非常に説明的です:

  • 「init」フックでチェックを実行します
  • ロードするページがフロントエンド(wp-adminではない)かどうかを確認します
  • バックエンドにリダイレクト(wp-admin)

プラグインまたはテーマのfunction.phpにコードを配置するだけで、そのまま使用できます。

編集:

これがうまくいかない場合(このコードでも小さな問題がありました)、新しいテーマ(または子テーマ)を作成し、このコンテンツのみをheader.phpファイル内に配置できます。

<?php
header("Location: ".get_admin_url());
exit();

0

IMO、プラグインは必要な作業が少なく、特定のケースにより適しています。

<?php
/*
Plugin Name: Disalbe Frontend
Description:  Disable the frontend interface of the website, leave only CMS and REST API
Author: Nikola Mihyalov
Version: 1.0
*/

add_action('init', 'redirect_to_backend');

function redirect_to_backend() {
    if(
        !is_admin() &&
        !is_wplogin() &&
        !is_rest()
    ) {
    wp_redirect(site_url('wp-admin'));
    exit();
  }
}


if (!function_exists('is_rest')) {
    /**
     * Checks if the current request is a WP REST API request.
     * 
     * Case #1: After WP_REST_Request initialisation
     * Case #2: Support "plain" permalink settings
     * Case #3: URL Path begins with wp-json/ (your REST prefix)
     *          Also supports WP installations in subfolders
     * 
     * @returns boolean
     * @author matzeeable
     */
    function is_rest() {
        $prefix = rest_get_url_prefix( );
        if (defined('REST_REQUEST') && REST_REQUEST // (#1)
            || isset($_GET['rest_route']) // (#2)
                && strpos( trim( $_GET['rest_route'], '\\/' ), $prefix , 0 ) === 0)
            return true;

        // (#3)
        $rest_url = wp_parse_url( site_url( $prefix ) );
        $current_url = wp_parse_url( add_query_arg( array( ) ) );
        return strpos( $current_url['path'], $rest_url['path'], 0 ) === 0;
    }
}

function is_wplogin(){
    $ABSPATH_MY = str_replace(array('\\','/'), DIRECTORY_SEPARATOR, ABSPATH);
    return ((in_array($ABSPATH_MY.'wp-login.php', get_included_files()) || in_array($ABSPATH_MY.'wp-register.php', get_included_files()) ) || (isset($_GLOBALS['pagenow']) && $GLOBALS['pagenow'] === 'wp-login.php') || $_SERVER['PHP_SELF']== '/wp-login.php');
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.