这几天在做一个接口的项目,使用的是JWT的规范,需要在header头里传递token,但是PHP一直获取不到,百度了一下找到了解决方法

首先确认Apache开启了重写模块

然后需要在.htaccess修改如下:


<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

  #增加下面的内容
  SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
</IfModule>

或者修改如下:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

  #增加下面的内容
  RewriteCond %{HTTP:Authorization} .
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

这样,PHP就可以获取到header里面的Authorization了