Answers:
为了确保只有前端重定向到domain.com
,请创建一个使用PHP header()函数的主题。
style.css
和index.php
(有效的WP主题必需) 在中style.css
,添加如下内容:
/ *
主题名称:重定向
说明:将前端重定向到domain.com
* /
在index.php
添加此:
header(“ Location:http : //domain.com ”);
<?php
使用带有“空数据”的主题。将两个文件放在目录中,然后激活“主题”。
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();
而不是退出来自动重定向到给定资源。
将其放在您的.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]
将此添加到您的根目录中的.htaccess
redirect 301 /wordpress http://www.domain.com
编辑:这实际上只是一个快速修复,可能会有更好的解决方案。另一种方法是将一个函数添加到您的functions.php文件中,然后在wp_head()中调用该函数以进行重定向。使用该方法,您还可以通过简单的IP检查来查看它。
/wordpress/wp-admin
现在重定向到//wp-admin
尽管这是一个相当古老的问题,而且已经得到了公认的答案,但是有人可能会发现这很有用,特别是因为这些解决方案都不适合我。
function redirect_to_backend() {
if( !is_admin() ) {
wp_redirect( site_url('wp-admin') );
exit();
}
}
add_action( 'init', 'redirect_to_backend' );
代码本身很容易解释:
只要将代码放在任何插件或主题的function.php中,它就可以立即使用。
编辑:
如果这对您不起作用(即使使用此代码,我也有一些小问题),则可以创建一个新主题(或子主题),并将此内容仅放在header.php
文件中:
<?php
header("Location: ".get_admin_url());
exit();
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');
}