学习笔记
1、用户认证
1.1、首先进入httpd.conf,搜索关键字httpd-vhost,把#去掉,保存退出
vim /usr/local/apache2.4/conf/httpd.conf
1.2、先进入配置文件,可以把原来有的虚拟主机给注释掉
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.cheese.com"
ServerName www.cheese.com
<Directory /data/wwwroot/www.cheese.com> #指定认证的目录
AllowOverride AuthConfig #打开认证的开关
AuthName "cheese user auth" #自定义认证的名字,可随意取
AuthType Basic #认证的类型,一般为Basic
AuthUserFile /data/.htpasswd #指定密码文件的位置
require valid-user #指定需要认证的用户为全部用户
</Directory>
</VirtualHost>
注:如果没有/data/www/www.cheese/com 需要创建
mkdir -p /data/wwwroot/www.cheese.com
echo "user auth"> /data/wwwroot/www.cheese.com/index.html
1.3、创建密码文件
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
注:-c是创建,-m是密码的加密方式为MD5
/data/.htpasswd为密码文件,admin为要创建的用户,第一次执行改命令需要加 -c,第二次就不需要了,否则密码文件会被重置,之前的用户被清空
1.4、验证和重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
1.5、效果
注:可以用IP地址直接访问,如果想要用网站的域名来访问的话,需要在windows下改写hosts文件
win+r键打开,输入 c:\windows\system32\drivers\etc 然后按回车
可以用notepad++或者记事本打开,添加你的IP和域名(ip和域名中间有个空格),然后保存
2、目录或文件认证
2.1、目录认证
在原来的基础上填加个文件夹名称
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.cheese.com"
ServerName www.cheese.com
<Directory /data/wwwroot/www.cheese.com/sh>
AllowOverride AuthConfig
AuthName "cheese user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
2.1.1、验证和重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
2.2、文件认证
把Directory改成 "FilesMatch 文件名"
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.cheese.com"
ServerName www.cheese.com
<FilesMatch sh.php>
AllowOverride AuthConfig
AuthName "cheese user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>
2.2.2、验证和重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
3、防盗链
3.1、编辑配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.cheese.com"
ServerName www.cheese.com
ServerAlias cheese.com
<Directory /data/wwwroot/www.cheese.com>
SetEnvIfNoCase Referer "http://www.cheese.com" local_ref
SetEnvIfNoCase Referer "http://cheese.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>
</VirtualHost>
3.2、验证和重新加载
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful