我一直有一些问题,我正在使用THIS oauth库,起初我认为它有错误,因为我可以正确获取我的令牌但是在使用令牌时我得到了401错误,之后一些实验我发现它与apache有关。如果我从命令行启动php服务器它可以正常工作,所以现在我处在一个我不知道apache可以做什么来使脚本出现故障的地步。
我在Windows机器上安装了XAMPP。 (Apache / 2.4.27(Win32)OpenSSL / 1.0.2l PHP / 7.1.9)
我在apache中配置了虚拟主机,就像这样。
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/slim3-simple-rest-skeleton-master/public"
ServerName TestSite
</VirtualHost>
和我的etc主机文件添加了行127.0.0.1 TestSite
使用该配置我可以向http://testsite/oauth/token发出请求并获取我的访问令牌,所以这里一切正常。
但是当我转到http://testsite/books时,我得到一个包含401个未经授权的标题的空白页面。
另一方面,如果我转到我的文件夹slim3-simple-rest-skeleton-master
并运行此php -S 0.0.0.0:8888 -t public/
我可以像以前一样在http://localhost:8888/oauth/token获取我的令牌,当我到达http://localhost:8888/books时,它可以正常工作。
我一直试图弄清楚有什么不同,但我没有运气,我在两种情况下都打印了phpinfo并且无法发现任何重大差异,对于我能找到什么有任何想法?
我可以尝试记录哪些内容会以不同的方式发生?
答案 0 :(得分:0)
问题在于apache删除了Header授权,添加了
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
使apache添加标题并正常工作。