PHP 标头未使用 litespeed 设置(但适用于 apache)

Posted

技术标签:

【中文标题】PHP 标头未使用 litespeed 设置(但适用于 apache)【英文标题】:PHP headers not set with litespeed (but work with apache) 【发布时间】:2016-09-26 21:17:54 【问题描述】:

在我的本地开发(vagrant、apache、ubuntu)中,使用 php 标头函数设置 Access-Control-Allow-Headers 没有问题。

但在生产中,CENTOS 6.7 上的 Litespeed。 php header 函数被忽略,Access-Control-Allow-Headers 总是设置为

X-Accept-Charset,X-Accept,Content-Type.

但我可以在 htaccess 文件中设置它们。

Header set Access-Control-Allow-Headers Origin, Content-Type, Accept, Authorization, X-Requested-With

PHP 标头函数在生产环境中确实有效

Access-Control-Allow-Origin "*"

这似乎是服务器配置问题,但我无法弄清楚它的设置位置。

为什么 litespeed 会忽略某些标头而不是其他标头的 PHP 标头函数?

【问题讨论】:

【参考方案1】:

问题是标题中的空格...

似乎 apache 和 litespeed 对待 php header 函数和 htaccess "header set blah...blah" 的方式不同。

所以你可以设置

X-Accept-Charset,X-Accept,Content-Type,Origin, 

但不是

X-Accept-Charset, X-Accept, Content-Type, Origin

在不同的地方。空格在 apache php header 函数中工作,但不是 Litespeed,空格在 litespeed thaccess "header set" 中工作,但不在 apache 中。

【讨论】:

以上是关于PHP 标头未使用 litespeed 设置(但适用于 apache)的主要内容,如果未能解决你的问题,请参考以下文章

未设置 CORS 标头 - 我可以请求图像 url,然后将其返回给自己吗?

PHP 肥皂标题未设置

LiteSpeed Web 服务器和“错误:找不到 OpenSSL 的库”

CORS 尝试,php 未修改响应标头

PHP标头未重定向到感谢页面

PHP:在标头重定向之前会话未保存