Question

J'utilise la base de données de WordPress et back-end pour gérer les nouvelles pour le site web de mon groupe et tout fonctionne super mais je voudrais désactiver l'extrémité avant de WordPress lui-même.

Je l'installation de WordPress installé dans /wordpress/ et, évidemment, la section d'administration est sous /wordpress/wp-admin/.

Quelle serait la meilleure façon de limiter quelqu'un d'accéder au lieu * un * site WordPress de configuration lui-même sans affecter la section admin?

Si quoi que ce soit, je ne pouvais tout simplement rediriger vers une bonne page d'accueil du site Web (domain.com/).

Était-ce utile?

La solution

Pour que seuls les réoriente d'extrémité avant à domain.com, faire un thème qui utilise la fonction PHP header ().

  • Créez un dossier appelé ou redirect quelque chose.
  • Ajoutez deux fichiers à la dossier: style.css et index.php (Nécessaire pour un thème WP valide)
  • En style.css, ajouter quelque chose comme ceci:

    / *
    Thème: Redirect
    Description: Redirige l'extrémité avant de domain.com
    * /

  • Dans index.php ajouter ceci:

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

  • Télécharger le dossier dans le répertoire des thèmes, puis l'activer dans l'interface utilisateur d'administration.

Autres conseils

Utilisez un thème avec « données vide ». Mettez deux fichiers dans le répertoire, puis activer « thème ».

style.css

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

et index.php

<?php
exit;

Mettez dans votre .htaccess et liste les chemins que vous souhaitez conserver disponibles:

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]

ajouter ceci au .htaccess dans votre répertoire racine

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

EDIT: Ceci est vraiment juste une solution rapide, il pourrait y avoir de meilleures solutions. Une autre façon serait d'ajouter une fonction à votre fichier functions.php, qui est ensuite appelé à rediriger cette façon wp_head (). En utilisant cette méthode, vous pouvez aussi vous permettre de voir avec un contrôle IP simple.

Bien que ce soit une question assez ancienne avec une réponse déjà acceptée, quelqu'un pourrait trouver cela utile, surtout depuis aucune de ces solutions a fonctionné pour moi.

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

Le code lui-même est assez explicite:

  • exécuter le contrôle sur le crochet 'init'
  • Vérifiez si la page que nous sommes le chargement est avant (pas wp-admin)
  • redirect à la fin arrière (wp-admin)

Il suffit de mettre le code dans un plug-in ou le function.php du thème et il devrait fonctionner hors de la boîte.

EDIT:

Si cela ne fonctionne pas pour vous (j'ai eu des problèmes mineurs, même avec ce code), vous pouvez créer un nouveau thème (ou un thème de l'enfant) et de mettre seulement ce contenu dans le fichier header.php:

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

OMI, un plug-in nécessiterait moins de travail et est plus approprié pour le cas spécifique.

<?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');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top