Laravel 5.2 - 使用.htpasswd 实现基本身份验证

4

我在设置.htpasswd保护的Laravel项目时遇到了问题。

我尝试将以下内容添加到我的.htaccess文件中,但在输入我的凭据后会导致内部服务器错误(500)。

.htaccess内容:

AuthUserFile .htpasswd
AuthType Basic
AuthName "Secured area"
Require valid-user

<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>

这是当前的routes.php。以防万一它是我应该更改的东西:

Route::get('/', 'HomeController@index');

Route::auth();

Route::get('/home', 'HomeController@index');

我在Google上找不到任何在laravel 5.2下仍然有效的有用信息,因此我真的希望有人能够提供想法 :)


1
内部服务器错误与htpasswd,参见https://dev59.com/lWUp5IYBdhLWcg3wJlAH。 - Olaf Dietsche
1个回答

5
如@Olaf所提到的,将此更改为:
AuthUserFile .htpasswd

将其转化为:

AuthUserFile /absolute/server/path/.htpasswd

..做到了。非常感谢!


我遇到了同样的问题。我也已经提到了htpasswd完整路径,但是没有起作用。你的.htaccess文件也在public里面吗? - Azima
不,我不想冒任何风险。 - ThatMSG
我们如何只允许API,并使用.htpasswd限制Web访问? - Akshay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接