केवल CMS के रूप में उपयोग करने के लिए फ्रंट एंड को अक्षम करें?


19

मैं अपने बैंड की वेबसाइट के लिए समाचार का प्रशासन करने के लिए वर्डप्रेस डेटाबेस और बैक एंड का उपयोग कर रहा हूं और सब कुछ बहुत अच्छा काम कर रहा है, लेकिन मैं वर्डप्रेस के सामने के छोर को खुद को अक्षम करना चाहता हूं।

मेरे पास वर्डप्रेस इंस्टॉलेशन स्थापित है /wordpress/और जाहिर है कि एडमिन सेक्शन के अंतर्गत है /wordpress/wp-admin/

एडमिन सेक्शन को प्रभावित किए बिना किसी को * अन * सेटअप वर्डप्रेस साइट को एक्सेस करने से किसी को प्रतिबंधित करने का सबसे अच्छा तरीका क्या होगा?

यदि कुछ भी हो, तो मैं वेबसाइट के उचित होम पेज ( domain.com/) पर पुनर्निर्देशित कर सकता हूं ।

जवाबों:


19

यह सुनिश्चित करने के लिए कि केवल फ्रंट एंड रीडायरेक्ट करता है domain.com, एक थीम बनाएं जो PHP हेडर () फ़ंक्शन का उपयोग करता है।

  • रीडायरेक्ट या कुछ नामक एक फ़ोल्डर बनाएँ।
  • फ़ोल्डर में दो फाइलें जोड़ें: style.cssऔर index.php (एक वैध WP विषय के लिए आवश्यक)
  • में style.css, इस तरह ऐड कुछ:

    / *
    थीम नाम: पुनर्निर्देशित
    विवरण: domain.com के सामने के छोर को पुनर्निर्देशित करता है
    * /

  • इसे index.phpजोड़ें:

    हेडर ("स्थान: http://domain.com ");

  • फ़ोल्डर को थीम डायरेक्टरी में अपलोड करें और फिर एडमिन UI में इसे सक्रिय करें।

यह अजीब कारण है कि प्रकाश मेरे सिर में बस गया। क्यों न केवल एक विषय बनाया जाए जो पुनर्निर्देश करता है! धन्यवाद।
निक बेडफोर्ड

1
कुछ स्पष्ट हो सकता है लेकिन यह केवल मेरे लिए काम करता है जब index.php की पहली पंक्ति थी<?php
finsbury

8

"खाली डेटा" के साथ एक थीम का उपयोग करें। निर्देशिका में दो फाइलें डालें, फिर "थीम" को सक्रिय करें।

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();किसी दिए गए संसाधन पर स्वचालित रूप से रीडायरेक्ट करने के लिए बाहर निकलने के बजाय कुछ जोड़ सकते हैं ।
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

संपादित करें: यह वास्तव में सिर्फ एक त्वरित समाधान है, बेहतर समाधान हो सकते हैं। एक अन्य तरीका यह होगा कि आप अपने फ़ंक्शन के लिए एक फ़ंक्शन जोड़ें। एफपी फाइल, जिसे तब उस तरीके से पुनर्निर्देशित करने के लिए wp_head () में कहा जाता है। उस पद्धति का उपयोग करके आप अपने आप को एक साधारण आईपी चेक के साथ देखने की अनुमति दे सकते हैं।


इसका एक साइड इफेक्ट है जो /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)

बस कोड को किसी भी प्लगइन या थीम के फंक्शन में डाल दें। पीएचपी और इसे बॉक्स से बाहर काम करना चाहिए।

संपादित करें:

यदि यह आपके लिए काम नहीं कर रहा है (मेरे पास इस कोड के साथ भी मामूली समस्याएं थीं), तो आप एक नया विषय (या एक बच्चा विषय) बना सकते हैं और केवल इस सामग्री को 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');
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.