我将 nginx 与 php5-fpm 以及以下fastcgi_params
文件一起使用:
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param HTTPS $https;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
我注意到$_SERVER['HTTP_REFERER']
变量没有设置。我在 nginx wiki 中搜索了对 Referer 标头的任何引用,但我找不到任何提及与 fastcgi 相关的问题。
如何让 nginx 传递该标头?我在这里遗漏了一些明显的东西吗?
当
HTTP_REFERER
且仅当远程用户代理(例如 Web 浏览器)提供可选标头时,nginx 将为 CGI 脚本设置环境变量Referer:
。对于远程用户代理而言,此标头的内容也完全是任意的(尽管它们应该是访问的最后一页,但这并不总是如此,并且没有什么限制它如此)。每当您的 CGI 脚本使用此变量时,它应该有一个备用控制路径来处理未设置它的情况,并且它应该认识到它经常是错误的或被欺骗的。