apache用户认证、域名跳转、Apache访问日志(两种格式)
1、apache 设置,用户访问时 目录或文件的认证:
对目录的认证:
<Directory /var/www/222> //指定认证的目录
AllowOverride AuthConfig //这个相当于打开认证的开关
AuthName "222 user auth" //自定义认证的名字,作用不大
AuthType Basic //认证的类型,一般为Basic
AuthUserFile /data/.htpasswd //指定密码文件所在位置
require valid-user //指定需要认证的用户为全部可用用户
</Directory>
配制:httpd-vhosts.conf文件:
创建相应的目录和 访问时的用户:
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd adc
若需要再增加用户,就可以不用-c(创建)了:
/usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd bcd
这是重启apache :
/usr/local/apache2.4/bin/apachectl graceful
在linux系统下可以这样子访问:
curl -x xxx.xxx.xxx.xxx:80 -uadb:password ddd.com -I
若用浏览器访问,就会发现访问时需要输入密码了
输入刚刚配制的用户名和密码后,就可以访问了。
对文件的认证:
修改:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/222"
ServerName ddd.com
<FilesMatch 1.php>
AllowOverride AuthConfig
AuthName "222 user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>
把它配制成:
重启apache:
/usr/local/apache2.4/bin/apachectl graceful
访问默认页面:
创建1.php文件:
echo "<?php phpinfo(); ?>" > /var/www/222/1.php
访问1.php
到此apache创建用户认证给配制完成。
2、apache的域名跳转:
编辑:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
需要加的配制:
<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
RewriteEngine On //打开rewrite功能
RewriteCond %{HTTP_HOST} !^www.ggg.com$ //定义rewrite的条件,主机名(域名)不是www.ggg.com,那么就执行下面的规则
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L] //定义rewrite规则
</IfModule>
重启apache服务:
/usr/local/apache2.4/bin/apachectl graceful
查看apache加载rewrite模块没有:
/usr/local/apache2.4/bin/apachectl -M |grep rewrite
若没有开启,那么开启加载rewrite模块:
编辑:vim /usr/local/apache2.4/conf/httpd.conf
把#LoadModule rewrite_module modules/mod_rewrite.so 前面的#号给去掉,再重启apache
再次查看:
进行访问:
到此,自动跳转就配制好了。
3、Apache访问日志(两种格式)
查看配制文件:/usr/local/apache2.4/conf/httpd.conf 里的:LogFormat,就可以看到相关的配制信息。
定义日志的格式(若开启了Vhost):
定义另一种日志格式:
然后,访问网站,查看日志格式:
以上有日志格式,就显示得更加详细了。