德施涅普的答案是正确的,但我也有问题。你必须做两件事:
- 检查mod_rewrite是否可用并激活。
- 更新位于公用文件夹中的 Laravel 的 .htaccess 文件。
在第一点中,您必须检查“mod_rewrite”模块是否通过php_info函数在单独的php文件中可用。然后,如果它可用,您必须激活它,这取决于您的Web服务器的配置,在我的Nitrous框中,我将这些行添加到我的httpd.conf文件中:
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
或者,您也可以在 .htaccess 文件中激活该模块:
RewriteEngine On
然后,在位于 laravel 应用程序根目录下的公用文件夹中的同一 .htaccess 文件中,您必须添加以下行:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
这些线对我有用。您的 .htaccess 文件应如下所示:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
就是这样,您应该在 Request::header() 数组中具有授权标头。只是为了澄清这些是Apache的问题,而不是Laravel本身的问题。