我有一个使用子目录设置运行多站点的网站。我刚刚尝试将我的网站更新到4.7.2,更新完成了,安装过程中没有发生任何错误,但安装完成后,我被重定向到/wp-admin/network/about.php?更新后返回404页。所以我试着回到/wp-admin/,我得到了一个重定向循环错误。
我已经浏览了至少40篇不同的文章,论坛和网站关于WordPress多站点wp管理重定向循环问题。我已经尽了一切可能来解决这个问题,但都没有奏效。主站点运行得非常好,但wp-admin是完全不可访问的。
以下是我迄今为止尝试过的东西:
- 我多次尝试清除缓存和cookie,但该网站没有使用任何缓存插件
- 我将插件文件夹重命名为plugins.deactivate为了更彻底,我还将wp_options表中的active_plugins字段更新为:0:{}
- 我试着从wp-config.php文件中删除多站点定义,但没有效果,我把它们放回了
- 我确认我的.htaccess文件与此处列出的3.5以上多站点文件相匹配–https://codex.wordpress.org/Multisite_Network_Administration#.htaccess_and_Mod_Rewrite
- 我也试着把它换成旧版本,以防万一,但没用,所以我把它换回来了
- 我发现一个论坛说,他们通过在/wp-admin/network/admin.php底部注释重定向来解决这个问题,所以我尝试了一下,但它什么也没做,所以我取消了注释,使其恢复正常
- 我发现另一个论坛说你需要在wp-config.php中定义cookie路径。所以我尝试过将下面的代码添加到我的wp-configphp中,但也不起作用,所以我删除了它
我尝试过的Cookie路径代码:
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
这是我的.htaccess文件:
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]
这是我的wp-config.php文件:
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'DBNAME');
/** MySQL database username */
define('DB_USER', 'DBUNAME');
/** MySQL database password */
define('DB_PASSWORD', 'DBPASS');
/** MySQL hostname */
define('DB_HOST', 'DBHOST');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('SECURE_AUTH_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('LOGGED_IN_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('NONCE_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('AUTH_SALT', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('SECURE_AUTH_SALT', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('LOGGED_IN_SALT', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('NONCE_SALT', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
/**
* Other customizations.
*/
define('FS_METHOD','direct');define('FS_CHMOD_DIR',0777);define('FS_CHMOD_FILE',0666);
define('WP_TEMP_DIR',dirname(__FILE__).'/wp-content/uploads');
/**
* Turn off automatic updates since these are managed upstream.
*/
define('AUTOMATIC_UPDATER_DISABLED', true);
/**#@-*/
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'XXXXXX';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
我发现了问题!在尝试将WordPress的全新副本安装到一个新的子域并立即收到太多重定向错误后,我知道问题必须在服务器级别。
我在cPanel中查看了我的错误日志,发现每次我试图访问wp-admin中的任何内容时,它都会抛出错误,因为这些文件是由具有0664权限的组写入的。
我将wp-admin和wp-includs中的所有文件更改为0644权限和bam!现在一切正常!
如果你有太多的重定向问题,也请检查你的错误日志。我不确定这是否只是我的服务器,或者WP是否在最近的更新中增加了额外的安全级别,但我很高兴它现在已经修复了!