修改.htaccess后仍找不到Apache Authoization标头


Apache Authoization Header Not found Even After .htaccess modification

我有一个laravel应用程序,其.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]
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我希望在我的请求头中有一个"授权"密钥,但在运行Ubuntu 14.0.4的开发服务器中没有通过。

同样的操作系统在我的本地机器上,在本地机器上运行得很完美。

这两个环境之间的唯一区别是在我的本地机器中,我制作了一个VirtualHost,因为我不能在开发服务器上制作VirtualHost,所以我通过IP地址/projectroot 访问它

所以我终于找到了原因。实际上是我的Apache默认配置文件不允许我的项目.htaccess文件覆盖它的配置。这就是.htaccess 中的线路

 RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

没有效果。为了允许,我把这个指令放在我的apache配置文件中,在我的情况下是/etc/apache2/sites-available/000-default.conf

<Directory /var/www/html/>
                Options Indexes FollowSymLinks MultiViews
                # AllowOverride None (Old value)
                AllowOverride All #(New Value)                   
                Order allow,deny
                allow from all
                # Uncomment this directive is you want to see apache2's
                # default start page (in /apache2-default) when you go to /
                #RedirectMatch ^/$ /apache2-default/
        </Directory>