我的配置文件有一个以...开头的server
指令 block
server {
server_name www.example1.com www.example2.com www.example3.com;
...为了让网站可以用不同的域名访问。
但是 PHP 的 $_SERVER['SERVER_NAME']
总是返回 server_name
的第一个条目,在本例中为 http://www.example1.com
所以我无法从 PHP 代码知道用户使用哪个域访问该站点。
有什么办法可以让nginx/fastcgi传递访问站点的真实域名吗?
到目前为止,我找到的唯一解决方案是为每个域重复整个 server
block ,并使用不同的 server_name
条目,但显然我正在寻找更好的方法一个。
最佳答案
在 fastcgi_params
配置中设置 SERVER_NAME
以使用 $host
。
fastcgi_param SERVER_NAME $host;
来源:http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_param
关于php - nginx "server"指令具有多个 "server_name"条目 : always first one is passed to PHP's $_SERVER ['SERVER_NAME' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479341/