Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP未看到授权标头_Php_Apache_Oauth 2.0_Http Headers - Fatal编程技术网

PHP未看到授权标头

PHP未看到授权标头,php,apache,oauth-2.0,http-headers,Php,Apache,Oauth 2.0,Http Headers,我有一个使用OAtuth2的应用程序,我发现授权头有问题。因为在php脚本中,我无法读取此标题。 标头已正确发送(Firebug网络): 但是当我调用getallheaders()函数或apache_请求_headers()函数时,我没有看到授权头(来自apache_请求_headers()的响应打印): 转储$\u服务器变量也看不到标头 我尝试在htacces中添加一些指令,但仍然不起作用: RewriteEngine On RewriteCond %{HTTP:Authorization}

我有一个使用OAtuth2的应用程序,我发现授权头有问题。因为在php脚本中,我无法读取此标题。
标头已正确发送(Firebug网络):

但是当我调用getallheaders()函数或apache_请求_headers()函数时,我没有看到授权头(来自apache_请求_headers()的响应打印):

转储$\u服务器变量也看不到标头

我尝试在htacces中添加一些指令,但仍然不起作用:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
我的整个htaccess文件和apache vhost:

<IfModule mod_headers.c>
    RequestHeader set X-Prerender-Token "rVnH5kFzvZM1HbRkqZDU"
</IfModule>

<IfModule mod_rewrite.c>

    Options -Indexes
    RewriteEngine On

    Header add Access-Control-Allow-Origin: *
    Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
    Header set Access-Control-Allow-Headers: "Authorization"


    # www => http
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    <IfModule mod_proxy_http.c>
        RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
        RewriteCond %{QUERY_STRING} _escaped_fragment_

        # Only proxy the request to Prerender if it's a request for HTML
        RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://service.prerender.io/http://pze2.biuro.netivo.pl/$2 [P,L]
    </IfModule>

    //Some rewrite rules making my app work

</IfModule>

<VirtualHost *:80>
        ServerName pze2.biuro.netivo.pl
        ServerAlias pze2.swmilib.pl
        DocumentRoot /var/www/pze2/

        CustomLog /var/log/apache2/pze2_access.log combined
        ErrorLog /var/log/apache2/pze2_error.log

        <IfModule log_forensic_module>
                ForensicLog /var/log/apache2/pze_forensic.log
        </IfModule>
</VirtualHost>

RequestHeader集合X-Prerender-Token“rVnH5kFzvZM1HbRkqZDU”
选项-索引
重新启动发动机
标题添加访问控制允许来源:*
标题添加访问控制允许方法:“获取、发布、选项、删除、放置”
标题集访问控制允许标题:“授权”
#www=>http
重写条件%{HTTP_HOST}^www\.(.*)$[NC]
重写规则^(.*)$http://%1/$1[R=301,L]
RewriteCond%{HTTP|u USER|u AGENT}baiduspider | facebook外部点击| twitterbot | rogerbot | linkedinbot |嵌入| quora\link\preview | showyoubot | outbrain | pinterest | slackbot vkShare | W3C| u验证程序[NC,OR]
重写cond%{QUERY\u STRING}\u转义\u片段_
#如果是HTML请求,则仅代理预呈现请求
(10.js 124?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????|\.mov\.psd\.ai\.xls\.mp4\.m4a\.swf\.dat\.dmg\.iso\.flv\.m4v\.torrent\.ttf\.woff)(*)(*)http://service.prerender.io/http://pze2.biuro.netivo.pl/$2[P,L]
//让我的应用程序工作的一些重写规则
服务器名pze2.biuro.netivo.pl
ServerAlias pze2.swmilib.pl
DocumentRoot/var/www/pze2/
CustomLog/var/log/apache2/pze2_access.log组合
ErrorLog/var/log/apache2/pze2_error.log
ForensicClog/var/log/apache2/pze_forensic.log
请帮忙,我不知道为什么它不起作用。可能是服务器问题。如果是,请告诉我如何修复它。我有带apache2.2.22和PHP5.6.13的debian服务器,我找到了答案。 对于要查找表单解决方案的用户,只需将以下内容添加到您的htaccess:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

在我的例子中,这很有帮助。

尝试从$\u服务器变量访问标题:
var\u dump($\u服务器)
尝试过,但没有看到授权标题。请将这些图像作为文本包含。就这样做了!但问题始终是一个解决方案@Dewan159
<IfModule mod_headers.c>
    RequestHeader set X-Prerender-Token "rVnH5kFzvZM1HbRkqZDU"
</IfModule>

<IfModule mod_rewrite.c>

    Options -Indexes
    RewriteEngine On

    Header add Access-Control-Allow-Origin: *
    Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
    Header set Access-Control-Allow-Headers: "Authorization"


    # www => http
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    <IfModule mod_proxy_http.c>
        RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
        RewriteCond %{QUERY_STRING} _escaped_fragment_

        # Only proxy the request to Prerender if it's a request for HTML
        RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://service.prerender.io/http://pze2.biuro.netivo.pl/$2 [P,L]
    </IfModule>

    //Some rewrite rules making my app work

</IfModule>

<VirtualHost *:80>
        ServerName pze2.biuro.netivo.pl
        ServerAlias pze2.swmilib.pl
        DocumentRoot /var/www/pze2/

        CustomLog /var/log/apache2/pze2_access.log combined
        ErrorLog /var/log/apache2/pze2_error.log

        <IfModule log_forensic_module>
                ForensicLog /var/log/apache2/pze_forensic.log
        </IfModule>
</VirtualHost>
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1