访问AWS EB PHP 5.4

时间:2017-01-10 10:17:42

标签: php wordpress amazon-web-services elastic-beanstalk wordpress-rest-api

我将Wordpress部署到AWS EB平台PHP 5.4.45。当我使用cookie授权从Angular前端向API发出请求时,我需要包含X_WP_NONCE标头,否则,Wordpress将忽略我的身份验证cookie。

问题是,在EB部署中,X_WP_NOCE变量中没有$_SERVER。没有HTTP_X_WP_NONCE。根本就没有现成品。

看起来所有以X_*为前缀的标题都会被删除。

curl -XGET -H 'A: this works' -H 'X_A: this does not work' http://example.com/

var_dump($_SERVER);

--->

array(76) {
...
["HTTP_A"]=>
  string(19) "this works"
...

// But no HTTP_X_A variable
)

不幸的是,X_WP_NONCE是wordpress核心的一部分,我无法编辑此代码。

如何告诉EB将X_*标头传递给php?

谢谢,

更新1: apache_request_headers()会看到所需的标题。

1 个答案:

答案 0 :(得分:0)

由于我已将自定义wp-config.php提交到repo(它从环境变量读取密钥和密码,请不要Booo),我可以添加一个临时解决方法

if (function_exists('apache_request_headers')) {
  $all_headers = apache_request_headers();
  $_SERVER['HTTP_X_WP_NONCE'] = $all_headers['HTTP_X_WP_NONCE'];
}