Laravel的HTTP基本身份验证在本地运行,但不在远程服务器上运行

时间:2014-09-25 19:33:53

标签: laravel basic-authentication http-basic-authentication

我有一个博客,我在其中创建了一个简单的管理部分。我决定使用Laravel的基本身份验证实现,因为我是唯一需要访问的人。这对我来说在本地工作正常,但是当我将代码推送到服务器时,它不允许我进行身份验证。

要解决此问题,我首先将ssh插入我的服务器并尝试以下步骤:

  1. 运行php artisan key:generate
  2. 运行php artisan tinker
  3. $user = new User;
  4. $user->email = 'name@email.com';
  5. $user->username = 'name@email.com';
  6. $user->password = Hash::make('1234');
  7. $user->save();
  8. 确认数据库条目看起来正确:4|name@email.com|name@email.com|xxxxxxxxxxxxx|2014-09-25 14:07:20|2014-09-25 14:07:20
  9. 尝试身份验证
  10. 我启用了FastCGI,因此根据Laravel的文档为我的.htaccess文件添加了额外的要求:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        RewriteEngine On
    
        # Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    
        # HTTP Authentication if FastCGI is enabled
        RewriteCond %{HTTP:Authorization} ^(.+)$
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        <IfModule mod_expires.c>
          ExpiresActive on
          ExpiresByType text/css                "access plus 2 hours"
          ExpiresByType application/javascript  "access plus 2 hours"
          ExpiresByType application/x-font-woff "access plus 2 hours"
          ExpiresByType font/truetype           "access plus 2 hours"
          ExpiresByType font/opentype           "access plus 2 hours"
          ExpiresByType image/png               "access plus 2 hours"
        </IfModule>
    </IfModule>
    

    然而,它仍然无效。我可以尝试调试这个建议吗?

    谢谢! 马特

1 个答案:

答案 0 :(得分:0)

我自己偶然发现了这一点并意识到我正在编辑错误的.htaccess - 根文件夹中的那个。在你的公共/文件夹中编辑.htaccess,你应该好好去。