Wordpress迁移后无法修改标头信息



我意识到这个问题已经被问了很多次,答案通常是PHP标记前后的一些空白,但我检查了所有文件,没有发现任何证据。

我正在使用Wordpress,并打开了调试模式。我的网站在一个域上工作,但我最近把它移到了一个新的服务器上(仍在linux上运行apache-我确实从共享服务器移到了VPS),并给它一个新域。我在wp-config.php中更改的内容如下:

define('DB_NAME', 'new db name');
define('DB_USER', 'new db user');
define('DB_PASSWORD', 'new db password');
define('WP_HOME','new url');
define('WP_SITEURL','new url');

然而,我现在无法登录,我已经将其缩小到没有设置cookie的事实。如果我访问wp-login.php,我会得到以下错误:

Warning: Cannot modify header information - headers already sent by (output started at /home/rcnhca/public_html/wp-includes/load.php:270) in /home/rcnhca/public_html/wp-login.php on line 368
Warning: Cannot modify header information - headers already sent by (output started at /home/rcnhca/public_html/wp-includes/load.php:270) in /home/rcnhca/public_html/wp-login.php on line 380

注意:wp-login.phpload.php都是Wordpress的核心文件。

wp-login.php的368行是:

header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));

和380行:

setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);

load.php的270行是:

ini_set( 'display_errors', 1 );

然而,我也收到了以下警告:

Warning: ini_set() has been disabled for security reasons in /home/rcnhca/public_html/wp-includes/load.php on line 270

我相信这是因为我安装了Suhosin PHP补丁,但我不确定这一点。我不想运行更易受攻击的PHP版本。

我不知道为什么会出现这个错误,在我的主题的任何PHP文件中都没有尾随空格。

注意:我也意识到我可以使用输出缓冲来解决这个问题,但我想了解问题发生在哪里,而不是应用一刀切的补丁,这会影响我的调试能力。

ini_set()警告会导致发送标头,进而触发"无法修改标头"消息。

相关内容

  • 没有找到相关文章

最新更新