我正在使用Lumen框架在API中实现身份验证。我正在本地主机上的标头中传递api_token,它工作正常。在Linux Server上上载时,它在api_token标头中给出空值。我正在使用postman检查响应
下面是我的AuthMiddleware@句柄代码,用于检查值。
echo $request->header("api_token");
我大部分时间都在谷歌上搜索,发现public/.htaccess需要修改,但对我不起作用。
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
在我的.htaccess末尾
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
我不知道如何为请求头配置apache 2。
1条答案
按热度按时间9rbhqvlz1#
对于请求标头密钥,应避免使用
underscore
。hyphen
更为常见,您应将请求标头密钥重命名为api-token。根据Apache 2.4 new features:标头到环境变量的转换比以前更加严格,以减少一些可能通过标头注入进行的跨站点脚本攻击。包含无效字符的标头(包括下划线)现在被静默删除。Apache中的环境变量提供了一些关于如何处理需要此类标头的损坏的旧客户端的指示。(这会影响使用这些环境变量的所有模块。)