PHP中缺less$ _SERVER标头,但在Python中存在

我在透明代理后面总是添加HTTP_X_FORWARDED_FOR头。

当我使用PHP转储标题时,标题丢失。 但是Python工作..大声笑

python

remote_addr = os.environ.get('HTTP_X_FORWARDED_FOR', os.environ.get('REMOTE_ADDR', '')) 

PHP:

 print_r($_SERVER['HTTP_X_FORWARDED_FOR']); print_r($_SERVER['REMOTE_ADDR']); 

—-编辑:添加更多的信息在下面的configuration——

PHP版本: 5.2.16

PHPconfiguration命令:

'./configure' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-fastcgi' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--enable-wddx' '--enable-zip' '--prefix=/usr' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/opt/openssl' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mhash=/opt/mhash/' '--with-mime-magic' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/opt/openssl' '--with-openssl-dir=/opt/openssl' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-png-dir=/usr' '--with-pspell' '--with-sqlite=shared' '--with-tidy=/opt/tidy/' '--with-ttf' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'

PHP服务器API: CGI/FastCGI

Python运行如下: CGI

HostGator不支持mod_python,但我在一个专用的框,所以我可以修改configuration,如果我只知道如何.. 🙂

您正在使用FastCGI。 虽然PHP正在取得进展,但PHP并不放心。 在PHP 5.3中传入了php-fpm, 而在5.4版本中,FastCGI将会使用HTTP头文件 。 请参阅apache_request_headers或getAllHeaders()的更改日志。

尽管没有纯粹的PHP解决方案,但前一个链接的第一个注释包含一个解决方法:使用mod_rewrite设置环境变量。

 # Apache config for mod_rewrite # from callum85 at notspam dot msn dot com 19-Apr-2007 06:07 RewriteEngine on RewriteRule .* - [E=HTTP_X_FORWARDED_FOR:%{HTTP_X_FORWARDED_FOR}]