目录
????????为了便于对网站资源进行灵活管理,还可以把这些文件存放在本地计算机的其它文件夹中或者其它计算机的共享文件夹中,然后再把这个文件夹映射到网站主目录中的一个文件夹上,这个文件夹被称为“虚拟目录”。
????????每个虚拟目录都有一个别名,这样用户就可以通过这个虚拟目录的别名来访问与之对应的真实文件夹中的资源了。虚拟目录的好处是在不需要改变别名的情况下,可以随时改变其对应的文件夹。
[root@localhost html]# systemctl stop firewalld
注:临时生效命令
?默认防火墙建立22端口连接
[root@localhost html]# setenforce 0
注:临时生效命令
[root@localhost ~]# vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 192.168.17.171:80>
? ? ? ServerName 192.168.17.171
? ? ? DocumentRoot /www/ip
</VirtualHost>
<Directory /www>
? ? ? AllowOverride none
? ? ? Require all granted
</Directory>
[root@localhost ~]# mkdir /www/ip/
[root@localhost ~]# echo thist is true > /www/ip/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 192.168.17.171:80>
? ? ? ServerName 192.168.17.171
? ? ? DocumentRoot /www/ip
? ? ? ?#子界面/virtual/index.html
? ? ? Alias /1 /virtual
? ? ? ?# /www/ip/1 ---> /virtual
</VirtualHost>
<Directory /www>
? ? ? AllowOverride none
? ? ? Require all granted
</Directory>
?
<Directory /virtual>
? ? ? AllowOverride none
? ? ? Require all granted
</Directory>
[root@localhost ~]# mkdir /virtual
[root@localhost ~]# echo this is virtual > /virtual/index.html
[root@localhost ~]# systemctl restart httpd
查看:
[root@localhost html]# systemctl stop firewalld
注:临时生效命令
?默认防火墙建立22端口连接
[root@localhost html]# setenforce 0
注:临时生效命令
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
<VirtualHost 192.168.17.171:80>
? ? ? ServerName 192.168.17.171
? ? ? DocumentRoot /www/ip
? ? ? ?#子界面/virtual/index.html
? ? ? Alias /1 /virtual
? ? ? ?# /www/ip/1 ---> /virtual
</VirtualHost>
<Directory /www>
? ? ? AllowOverride none
? ? ? Require all granted
</Directory>
?
<Directory /virtual>
? ? ? AllowOverride none
? ? ? AuthType Basic ? #认证类型 —— 基本认证
? ? ? AuthName "please login ......" ? # 认证民称——提示信息
? ? ? AuthUserfile /etc/httpd/users ? #用户认证文件
? ? ? Require user tom
</Directory>
AuthType Basic | 基本认证类型(账号) |
---|---|
AuthName “Please login:” | 提示信息,双引号必须有,可以更换为其它提示信息 |
AuthUserFile /etc/httpd/mymima | 用户认证文件的用户名和密码指定的文件所在位置 |
Require user xiaoming xiaohong | 指定这两个用户可以访问该服务器 |
[root@localhost ~]# htpasswd -c /etc/httpd/users tom(-c表示创建)
输入密码
再次添加不需要-c
[root@localhost ~]# htpasswd /etc/httpd/users zhangsan
输入密码
添加成功:
[root@localhost ~]# systemctl restart httpd
在浏览器中输入:http://192.168.17.171/1
【登录成功后实际上访问的是/etc/httpd/users/index.html的内容】
<IfModule mod_userdir.c>
? UserDir public_html 开启用户主目录
</IfModule>
<Directory /home/zhangsan/public_html>
? Authtype Basic
? AuthName "......"
? AuthUserFile /etc/httpd/userfile
? Require user zhangsan
</Directory>
#htpasswd -c /etc/httpd/userfile zhangsan
#useradd zhangsan (必须创建用户身份)
#mkdir /home/zhangsan/public_html
#chmod o+rx /home/zhangsan
#echo this is zhangsan > /home/zhangan/public_html/index.html
#systemctl restart httpd
测试:
http://www.ha1.com/~zhangsan/
[root@localhost html]# systemctl stop firewalld
注:临时生效命令
?默认防火墙建立22端口连接
[root@localhost html]# setenforce 0
注:临时生效命令
[root@localhost ~]#vim /etc/httpd/conf.d/serverdir.conf
<VirtualHost 192.168.17.171:80>
? ? ? ServerName 192.168.17.171
? ? ? DocumentRoot /www/ip
? ? ? ?#子界面/virtual/index.html
? ? ? Alias /1 /virtual
? ? ? ?# /www/ip/1 ---> /virtual
</VirtualHost>
<Directory /www>
? ? ? AllowOverride none
? ? ? <Requireall>
? ? ? ? ? ? ? Require all granted
? ? ? ? ? ? ? Require not ip 192.168.17.171 ?#禁止192.168.17.171访问服务器
? ? ? </Requireall>
</Directory>
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.17.171
此时出现的是Redhat访问官网欢迎界面
而客户端此时可以访问:
只需将其中IP改为host即可,其余规则相同
<VirtualHost 192.168.17.171:80>
? ? ? ServerName 192.168.17.171
? ? ? DocumentRoot /www/ip
? ? ? ?#子界面/virtual/index.html
? ? ? Alias /1 /virtual
? ? ? ?# /www/ip/1 ---> /virtual
</VirtualHost>
<Directory /www>
? ? ? AllowOverride none
? ? ? <Requireall>
? ? ? ? ? ? ? Require all granted
? ? ? ? ? ? ? Require not hosts 192.168.17.171 ?#禁止192.168.17.171访问服务器
? ? ? </Requireall>
</Directory>