簡體   English   中英

$ _SERVER [“HTTP_ACCEPT_ENCODING”]未由nginx設置

[英]$_SERVER[“HTTP_ACCEPT_ENCODING”] not set by nginx

我在我的服務器上安裝了nginx 現在我沒有獲得在Apache中工作的$_SERVER["HTTP_ACCEPT_ENCODING"]變量。

怎么弄這個?

終於通過編輯/etc/nginx/proxy.inc找到了解決方案

proxy_set_header接受編碼“”

proxy_set_header Accept-Encoding $ http_accept_encoding

當您使用NGINX運行PHP-FPM時,php將以完全不同的方式看到$ _SERVER變量(這是因為服務器參數默認傳遞給nginx中的fcgi腳本)。

以下是如何以php-fpm的形式運行php時會看到$ _SERVER變量:代碼:數組([USER] => nobody [HOME] => / [FCGI_ROLE] => RESPONDER [SCRIPT_FILENAME] => / usr / local / www /www.example.com/public_html/example/index.php [Content-Type] => multipart / form-data [QUERY_STRING] => upload = true [REQUEST_METHOD] => POST [CONTENT_LENGTH] => 40403 [SCRIPT_NAME] = > /example/index.php [REQUEST_URI] => /site/index.php?upload=true [DOCUMENT_URI] => /example/index.php [DOCUMENT_ROOT] => /usr/local/www/www.example.com / public_html [SERVER_PROTOCOL] => HTTP / 1.1 [GATEWAY_INTERFACE] => CGI / 1.1 [SERVER_SOFTWARE] => nginx / 0.7.65 [REMOTE_ADDR] => 193.110.48.4 [REMOTE_PORT] => 9971 [SERVER_ADDR] => 192.168.1.10 [SERVER_PORT] => 80 [SERVER_NAME] => www.example.com [REDIRECT_STATUS] => 200 [HTTP_HOST] => www.example.com [HTTP_ORIGIN] => http://www.example.com [HTTP_X_FILE_SIZE] = > 40403 [HTTP_X_REQUESTED_WITH] => XMLHttpRequest [HTTP_CACHE_CONTROL] => max-age = 0 [HTTP_IF_MODIFIED_SINCE] =>星期一,1997年7月26日05:00 :00 GMT [HTTP_CONTENT_LENGTH] => 40403 [HTTP_X_FILE_NAME] => nokia-6300-yahoo.jpg [HTTP_USER_AGENT] => Mozilla / 5.0(Macintosh; U; 英特爾Mac OS X 10_5_8; zh-cn)AppleWebKit / 533.17.8(KHTML,與Gecko一樣)Version / 5.0.1 Safari / 533.17.8 [HTTP_CONTENT_TYPE] => multipart / form-data [HTTP_REFERER] => http://www.example.com/ example / index.php [HTTP_ACCEPT] => / [HTTP_ACCEPT_LANGUAGE] => en-us [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_CONNECTION] => keep-alive [PHP_SELF] => /example/index.php [REQUEST_TIME] = > 1282822862)

請注意HTTP_CONTENT_TYPE,HTTP_X_FILE_SIZE,HTTP_X_FILE_NAME和其他HTTP_ *變量。

這是一個簡單的php函數,它將這些標題值調整為像apache一樣的apache。

 function getallheaders() {
    $replace_array = array('CONTENT_TYPE' => 'Content-Type',
                    'CONTENT_LENGTH' => 'Content-Length',
                    'X_FILE_SIZE' => 'X-File-Size',
                    'X_FILE_NAME' => 'X-File-Name');
    foreach($_SERVER as $h=>$v) {
        $h = str_replace("HTTP_", "", $h);
        $h = $replace_array[$h];
        $headers[$h] = $v;
    }
    return $headers;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM