网站目录设置权限，访问目录需密码直接访问文件无需密码

针对网站根目录下的某些子目录，有时候不希望把子目录内的所有文件公开，此时可以设置访问权限，访问这个子目录时，需要输入用户名和密码才可查看里面内容。
演示网站：https://netdisk.ltd/
系统版本：CentOS 7 64
网站环境：LNMP/BT，Apache/nginx
例如，打开以上演示网站，可正常罗列站内的文件夹和文件，但当要打开https://netdisk.ltd/Video/时，会提示需要输入用户名和密码才能浏览。如图：

设置方法很简单，Apache、litespeed、nginx都可以设置。
首先，利用htpasswd配置用户名和密码文件：

yum -y install httpd-tools
#在/home目录内生成密码文件passwd，添加用户名yours，根据提示设置密码
htpasswd -c /home/passwd yours

不同的Linux发行版，安装htpasswd方法不同，如果觉得麻烦，也可以用脚本直接生成密码文件，而无需使用htpasswd。
脚本下载及方法如下：

该资源需登录评论本文后刷新网页查看，如果没有账号，可以先进行注册。

根据提示设置用户名密码和文件名，密码文件会在终端当前目录下生成。
密码文件生成后，就可以开始设置权限了。

Apache环境：

在需要设置权限的子目录内，通过添加.htaccess文件来设置目录权限。
编辑新建的.htaccess文件，添加以下内容：

AuthUserFile /home/passwd
AuthName "Good Jobs"
AuthType Basic
require valid-user
ErrorDocument 401 "Unauthorized Access"

不过，这样设置，直接访问此目录内的文件，也是需要输入用户名密码的。如果只是设置访问目录需要密码，直接访问目录内的文件不需要密码，则需要添加以下内容：

该资源需登录评论本文后刷新网页查看，如果没有账号，可以先进行注册。

效果：
访问目录需要密码：https://netdisk.ltd/Video/
访问文件不需密码：https://netdisk.ltd/Video/Test.zip

Nginx环境：

在网站的nginx配置文件中，添加以下信息：

location ^~ /Softs/Linux/
{
auth_basic "Authorized users only";
auth_basic_user_file /home/passwd;
}

重启nginx。不过，加上认证之后，该目录下的PHP将不会被解析，如果想可以解析PHP可以将上面的配置改为：

该资源需登录评论本文后刷新网页查看，如果没有账号，可以先进行注册。