为了安全起见,需要把~yanji 用户隐藏起来,这时就可以设置个 虚拟目录。
它在Apache服务器应用比较多,能够隐藏系统的真实目录,实用性非常高。
虚拟目录主要 通过 Alias语句 和 ScriptAlias语句进行实现
二者区别:
Alias语句 : 针对普通别名
ScriptAlias语句: 针对脚本别名,即是ScriptAlias语句设置的别名可以支持CGI脚本。
1、Alias语句方式 Alias /别名 "真实目录"
[root@localhost root]# cd /etc/httpd/conf.d
[root@localhost conf.d]# cat > v_p_user_auth.conf
Alias "/useryan" "/home/yanji/public_html"
[root@localhost conf.d]# service httpd restart
停止 httpd: [ 确定 ]
启动 httpd: [ 确定 ]
在浏览器验证如下 http://192.168.170.4/useryan/
2、ScriptAlias语句方式 ScriptAlias /别名 "真实目录"
[root@localhost conf.d]# vi /etc/httpd/conf/httpd.conf
找到ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 确保它不给“#”注释。 如下图
创建测试的主页
[root@localhost conf.d]# cat > /var/www/cgi-bin/test.sh
#! /bin/bash echo "Content-type: text/html"echo for x in 早上 中午 晚上; do echo "$x<br/>" done
浏览器输入 http://192.168.170.4/cgi-bin/test.sh
会因为权限问题,不成功。
[root@localhost conf.d]# chmod +x /var/www/cgi-bin/test.sh
(注意:
如果网页乱码,就是/etc/httpd/conf/httpd.conf里面的AddDefaultCharset的值不为utf-8
改为utf-8后,重启httpd服务就行)
二、目录权限配置
在Apache服务器中,可以使用Order allow deny 语句对其进行控制,有两种格式:
1、Order allow,deny (表示先允许后拒绝,即是没有允许的全部拒绝) 严格配置
Allow from 192.168.170.0/24 (表示192.168.170.0/24 网段的所有主机可以访问)
Deny from all (表示拒绝所有主机的访问)
2、Order deny,allow (表示先拒绝后允许,默认没有拒绝的全部允许) 宽松配置
Deny from 192.168.170.0/24 (表示拒绝192.168.170.0/24网段的所有主机访问,允许其他网段的主机访问)
例如: /var/www/music 目录只允许 内网用户访问,不允许外网用户访问,那就把内网的网段范围写在<Directory "/var/www/music" >节点之间
为了不混乱主配置文件,我们可以在 /etc/httpd/conf.d 目录创建music.conf文件,添加以下内容:
Alias "/music" "/var/www/music"
<Directory "/var/www/music">
Options Indexes SymLinksIfOwnerMatch
Order allow,deny
Allow from 192.168.170.0/24 192.168.155.0/24
</Directory>
然后重启服务就行了 apachectl restart
如果<Directory "/var/www/music" >节点之间加上
AuthType Basic
AuthName "please input name$passwd"
AuthUserFile "/var/www/users"
Require valid-user
就可以同上一篇的身份验证结合,增强安全性。