因此,我安装了一个新的5.2 WP,并建立了与子域一起工作的多站点网络,然后创建了两个新的测试站点。
从外面看,一切都很好,我可以浏览主站点和2个测试站点。
在管理面板上,我可以在网络管理->站点下更改主站点设置选项卡,并正确保存。
当我尝试在这两个测试站点中的任何一个站点上执行相同操作时,虽然我得到了一个403禁止错误,但表单发送到的php脚本URL与主站点相同(/wp-admin/network/site-settings.php?action=update-site) 这让我感到困惑,因为它应该是有效的。
我已经检查了403个错误的多个指南,所有检查都正常:
DB multisite tables are are there文件权限似乎还可以,我甚至正在尝试使用所有755 atm
配置方面,这是所有WP默认值,因为它是一个新安装,创建了子域通配符,路径设置为与域相同,我正在使用网络安装中的HTACCESS代码:Options FollowSymlinks
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress
将网络安装线路添加到wp配置中。php:
/* MULTISITE */
define(\'WP_ALLOW_MULTISITE\', true);
define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', true);
define(\'DOMAIN_CURRENT_SITE\', \'mydomain.com\');
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\';`
你知道问题出在哪里吗?
SO网友:Jrggv
我也有同样的问题-我发现Apache modsecurity中包含一组Wordpress排除的规则没有涵盖/network/site-settings.php
, 所以我可以在我的多站点设置中做任何事情,除了编辑站点。在文件中/usr/share/modsecurity-crs/rules/REQUEST-903.9002-WORDPRESS-EXCLUSION-RULES.conf
我添加了以下行:
SecRule REQUEST_FILENAME "@endsWith /wp-admin/network/site-settings.php" \\
"id:9009999,\\
phase:1,\\
pass,\\
t:none,\\
nolog,\\
ctl:ruleRemoveById=941140,\\
ctl:ruleRemoveById=941160,\\
ctl:ruleRemoveById=942190,\\
ctl:ruleRemoveById=942240,\\
ctl:ruleRemoveById=942240,\\
ctl:ruleRemoveById=980130,\\
ctl:ruleRemoveById=949110"
。。。这是我第一次体验编辑modsecurity规则,所以可能有更好的方法来做这件事——但它奏效了。