我正在使用Nginx运行CentOS 6。 它目前运行良好,我试图用密码保护我的管理员目录。我可以成功登录。 但是,当我尝试查看目录中的主索引页面(index.php)时,我得到了403 Forbbiden。

2013/04/18 02:10:17 [error] 17166#0: *24 directory index of "/usr/share/ngin/html /somedir/" is forbidden, client: XXX, server: mysite.com, request: "GET /somedir/ HTTP/1.1",  host: "mysite.com"

我已经仔细检查了“ .htpasswd”文件的权限。 它属于chmod 640的“ root:root”。我也尝试将所有者设置为“ nginx:nginx”,并且错误仍然存​​在。

这就是我使htpasswd工作的方式:

location ~ ^/([^/]*)/(.*) {
    if (-f $document_root/$1/.htpasswd) {
            error_page 599 = @auth;
            return 599;
    }
}

location @auth {
    auth_basic "Password-protected";
    auth_basic_user_file $document_root/$1/.htpasswd;
}

===============>>#1 票数:2

尽管这个问题已经很老了,但我必须将解决方案放在这里以帮助他人。 这个问题就像我在某个地方的痛苦。

我可能已经读出(并实现/尝试过)几乎所有可能的在线线程(截止日期),但是没有一个可以完全解决“ 403 Forbidden” nginx问题:

我将从头开始写下步骤:(阻止我的网站访问):

1>我们将在/ etc / nginx中创建一个名为.htpasswd的隐藏文件

sudo sh -c "echo -n 'usernamee:' >> /etc/nginx/.htpasswd"

2>现在将加密的密码添加到给定的用户名

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

这将要求您输入密码并确认。

3>现在,我们需要设置nginx来检查我们新创建的.htpasswd,然后再提供任何内容。

location / {
        try_files $uri $uri/ /index.php?$query_string; # as per my configuration

        auth_basic "Authorized access only";
        auth_basic_user_file .htpasswd;
}

4>最后重启服务器生效

sudo service nginx restart

现在浏览URL:

请注意:我没有对权限进行任何更改。 默认情况下,将在创建时设置htpasswd的文件许可权,如下所示:

-rw-r--r-- 1 root root 42 Feb 12 12:22 .htpasswd

===============>>#2 票数:0

仔细阅读错误。 您缺少index.html或类似内容。

  ask by 0xFF translate from so

未解决问题?本站智能推荐: