文档章节

Apache用户认证、域名跳转 、Apache访问日志

是江山
 是江山
发布于 2017/08/01 10:07
字数 1457
阅读 5
收藏 0

Apache用户认证

用户认证

修改虚拟主机配置文件

 /usr/local/apache2/conf/extra/httpd-vhosts.conf

在配置文件中加入如下配置:


#因为是针对目录,所以使用<Directory>,后面跟目录
<Directory  /data/wwwroot/111.com>
#表示开启认证
	AllowOverride AuthConfig
#提示信息,可自定义
	AuthName "111.com user"
#认证类型,使用Basic即可
	AuthType  Basic
#认证密码文件位置
	AuthUserFile  /data/wwwroot/.htpasswd
#指定需要认证的用户为全部可用用户
	require valid-user
</Directory>

增加配置文件

<Directory  /data/wwwroot/111.com>
     AllowOverride AuthConfig
     AuthName "111.com user"
     AuthType  Basic
     AuthUserFile  /data/wwwroot/.htpasswd
     require valid-user
</Directory>

创建用户密码文件

创建密码文件可以使用Apache自带的htpasswd命令

/usr/local/apache2.4/bin/htpasswd -c -m /data/wwwroot/.htpasswd  jiangshan
  • /data/wwwroot/.hrpasswd :文件路径
  • jiangshan :用户名
  • c:为了创建文件以及第一个用户,文件存在或创建第二个用户时不需要使用
  • m: 这里是列表文本m:表示密码使用MD5加密

检查、重载配置文件

[root@jiangshan~]# /usr/local/apache2.4/bin/apachectl  -t
Syntax OK
[root@jiangshan~]# /usr/local/apache2.4/bin/apachectl  graceful

curl测试

curl -x127.0.0.1 :80 -ujiangshan:844878355  -I aaa.com
curl使用-u跟用户:密码可以直接认证,状态码为200

####文件认证

修改虚拟主机配置文件

 /usr/local/apache2/conf/extra/httpd-vhosts.conf

在配置文件中加入如下配置:

#因为是针对文件,所以使用<FilesMatch>,后面跟文件
<Directory  /data/wwwroot/111.com>
#表示开启认证
	AllowOverride AuthConfig
#提示信息,可自定义
	AuthName "111.com user"
#认证类型,使用Basic即可
	AuthType  Basic
#认证密码文件位置
	AuthUserFile  /data/wwwroot/.htpasswd
#指定需要认证的用户为全部可用用户
	require valid-user
</Directory>

创建用户密码文件

/usr/local/apache2.4/bin/htpasswd  -m /data/wwwroot/.htpasswd  jiangshan

检查重载配置文件并测试

[root[@jiangshan](https://my.oschina.net/u/2359274) ~]# /usr/local/apache2.4/bin/apachectl  -t
Syntax OK
[root[@jiangshan](https://my.oschina.net/u/2359274) ~]# /usr/local/apache2.4/bin/apachectl  graceful

Apache使用\匹配目录,使用\匹配文件。但是,需要注意的是直接使用\的话,只能匹配网站根目录下的文件。如果需要匹配非根目录下的文件,有一下两种方法。

  • 直接使用\,后面个文件

  • 先使用\指定非根目录,再使用\匹配文件

域名跳转

Apache Rewrite的主要功能

  • 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等

2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。配置步骤如下:

  • 去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
  • 然后再在httpd.conf中书写如下规则:
RewriteEngine on 
#当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面 
RewriteRule ^/t_(.*).html$ /test.php?id=$1 

另一种是针对apache服务器下的某一目录的配置,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。配置步骤如下:

  • 去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
  • 修改httpd.conf文件中的"AllowOverride None"为"AllowOverride all",同时最好将Options也置为"all",否则可能会出问题。
  • 在目录中建立.htaccess文件,并用记事本打开,书写如下规则:
RewriteEngine on 
RewriteRule ^/t_(.*).html$ /test.php?id=$1 

Apache Rewrite规则的书写

RewriteEngine on 
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1 
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R] 
RewriteEngine on 
#当我们访问的地址不是以www.163.com开头的,那么执行下一条规则 
RewriteCond %{HTTP_HOST} !^www.163.com [NC] 
RewriteRule ^/(.*) http://www.163.com/ [L] 

Apache Rewrite规则修正符

  • R 强制外部重定向
  • F 禁用URL,返回403HTTP状态码。
  • G 强制URL为GONE,返回410HTTP状态码。
  • P 强制使用代理转发。
  • L 表明当前规则是最后一条规则,停止分析以后规则的重写。
  • N 重新从第一条规则开始运行重写过程。
  • C 与下一条规则关联

如果规则匹配则正常处理,以下修正符无效

  • T=MIME-type(force MIME type) 强制MIME类型
  • NS 只用于不是内部子请求
  • NC 不区分大小写
  • QSA 追加请求字符串
  • NE 不在输出转义特殊字符 %3d$1 等价于 =$1
修改虚拟主机配置文件

虚拟主机配置文件

/usr/local/apache2/conf/extra/httpd-vhosts.conf

在对应的虚拟主机配置文件中加入

#使用mod_rewrite.c模块 <IfModule mod_rewrite.c> #表示模块引擎打开 RewriteEngine on #设置主域名,!表示取反,不是该域名的都执行下面的规则 RewriteCond %{HTTP_HOST} !^111.com$ #规则,设置跳转后域名与跳转状态 RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule>

检查mod_rewrite.c模块是否加载
检查是否加载

[root@jiangshan111.com]# /usr/local/apache2.4/bin/apachectl -M |grep "rewrite" rewrite_module (shared)


未加载如何解决

编辑Apache主配置文件httpd.conf,找到”rewrite_module“所在行,取消注释


检查重载配置文件

[root@allen1 111.com]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@allen1 111.com]# /usr/local/apache2.4/bin/apachectl graceful


- 使用curl测试,测试结果为301

- 301为永久跳转,302为临时跳转


### Apache访问日志

[资料](https://www.phpsong.com/339.html)

访问日志记录用户的每一个请求

vim /usr/local/apache2.4/conf/httpd.conf //搜索LogFormat LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined LogFormat "%h %l %u %t "%r" %>s %b" common

 把虚拟主机配置文件改成如下:

<VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.123.com ServerAlias 123.com CustomLog "logs/123.com-access_log" combined </VirtualHost>

 重新加载配置文件 

-t,graceful

curl -x127.0.0.1:80 -I 123.com tail /usr/local/apache2.4/logs/123.com-access_log

###拓展
[apache虚拟主机开启php的短标签 ](http://www.aminglinux.com/bbs/thread-5370-1-1.html)

© 著作权归作者所有

是江山
粉丝 4
博文 44
码字总数 24060
作品 0
苏州
运维
私信 提问
5.Apache用户认证,域名跳转,访问日志

[toc] Apache用户认证 11.18 Apache用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问。一些比较好总要的站点和网站后台都会加上用户认证,以保证安全。 1.下...

Xavi2017
2018/03/08
0
0
LAMP架构用户认证、域名跳转及访问日志

11月15日任务 11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志 apache用户认证 针对目录 先确保主配置文件内开启了虚拟主机服务 编辑虚拟主机配置文件 用户加密 -c 创建 -m...

robertt15
2018/11/15
10
0
LAMP架构(apache用户认证,域名重定向,apache访问日志)

一、apache用户认证 用户认证就是打开一个网站。会让你输入用户名和密码。对了才会让你访问HTTP, vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 编辑内容如下 //指定认证的目录 Al...

小新锐
2017/12/20
0
0
Apache用户认证、Apache域名跳转、Apache访问日志

Apache用户认证 一般情况我们访问网站的时候并不需要用户认证,但是当网站上某些网页只想提供给指定的用户访问时,可以通过用户认证来实现。下面这个示例是在虚拟主机配置文件中做的,#用户认...

李超小牛子
2018/08/21
29
0
Apache用户认证、域名跳转、配置访问日志

Apache用户认证 介绍:Apache用户认证也叫httpd的用户认证,这个功能是在用户访问网站的时候,需要输入用户名密码才能访问 普通用户认证 ps:后面的操作都是我们做了默认虚拟主机后 进行的实...

杉下
2017/12/26
7
0

没有更多内容

加载失败,请刷新页面

加载更多

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
4
0
程序性能checklist

程序性能checklist

Moks角木
昨天
6
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
5
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
6
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部