|
站点的登录控制
以下是如何对一个目录进行登录控制的方法。
第一步:在Apache的配置文件/etc/httpd/conf/httpd.conf中添加以下内容:
Alias /stu “/var/stu”
“Alias”可以设置别名,使复杂的路径名称简化。
别名项目具有精确性,亦即“/stu”不等于“/stu/”,用户要特别留意路径名称最后的“/”号。
<Directory “/var/stu”>
Options Indexes MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
² “Options Indexes MultiViews”
“Options”项目负责控制指定的目录可使用Apache服务器的哪些功能,如下:
ü “Indexes”: 若某个URL要求列出目录内容,而该目录没有目录索引文件 (DirectoryIndex,如index.html)存在,则Apache服务器将自动产生目录中 的文件列表,送出资料响应要求。
ü “MultiViews”:使用内容协商功能,经由Apache服务器和网页浏览器软件相互沟通协调后,决定传送的网页的性质。例如网页浏览器要求优先传送出英文版的网页内容。
ü “All”:除了“MultiViews”之外,启动所有的功能。
ü “None”:不允许存取此目录。
…………………………
² “AllowOverride AuthConfig”
“AllowOverride”项目指定Apache服务器读取指定目录下的.htaccess文件时,能否变更目录默认的权限,能使用的功能设定如下:
ü “AuthConfig”:允许使用“AuthName”、“AuthType”、“AuthUserFile”、“require” 等设定变更授权项目。
ü “FileInfo”:允许使用“AddType”、“DefaultType”、“ErrorDocument”、“AddLanguage”等设定控制文件类型。
ü “Limit”:允许使用“allow”、“deny”、“order”设定控制主机存取权限。
ü “All”:让Apache服务器以.htaccess设定文件内容为准,改变指定的目录的默认存取权限。
…………………………
² “Order allow,deny”
“Order”可指定采用“Allow”及“Deny”项目的先后顺序,如果两项设定值抵触,将以后面的设定值优先。“Order”一般搭配“Allow”及“Deny”项目来设定可存取Apache服务器的主机有哪些。例如:
1) 只允许来自166.111.1.1的主机可存取,你必须先用“Deny”项目拒绝所有主机存取,再用“Allow”项目开放166.111.1.1地址存取此服务器,如以下范例所示:
Order deny,allow
Deny from all
Allow from 166.111.1.1
2) 以下范例允许除了166.111.1.2以外的主机存取此服务器:
Order allow,deny
Allow from all
Deny from 166.111.1.2
3) 以下范例拒绝来自thiz.com域的用户存取:
Deny from thiz.com
4) 以下范例介绍所有主机存取Apache服务器:
Allow from all
5) 以下范例拒绝两台主机存取,两两地址之间需用空格分开:
Deny from 166.111.1.1 166.111.1.2
第二步:在/var/stu目录下建立.htaccess文件,其内容如下:
AuthName “shared files”
AuthType Basic
AuthUserFile /var/stu/.htpasswd
require valid-user
当启动了Apache服务器的目录认证功能之后,网页撰写者就可在被保护的目录下,自行编写设定文件,以决定要如何保护此目录,而Apache服务器管理者可在httpd.conf文件中指定此设定项(AccessFileName)所要采用的文件名称,.htaccess为默认值设定:
AccessFileName .htaccess
² “AuthName”
设定要求用户输入名称及密码对话框的提示文字。
² “AuthType”
设定身份认证时,传送密码时的编码方式。此例采用“Basic”,即利用uuencode编码方式传送密码。
² “AuthUserFile”
指定密码文件的位置,需采用绝对路径,不得使用相对路径。
² “require”
设定可存取此目录的用户,“valid-user”表示允许.htaccess密码文件内的所有用户存取。若不想让密码文件内的所有用户都有存取权,则可个别指定用户,例如:
require user liming
表示只允许密码文件内的liming用户存取此目录。
第三步:执行命令生成认证文件:
# htpasswd -c .htpasswd liming
创建认证文件和第一个用户名及密码,此用户可以不是系统用户
# htpasswd .htpasswd baoshi
添加其他用户名和密码
# cat .htpasswd
列出.htpasswd文件的内容
# htpasswd -m .htpasswd liming
更改已设定的密码
第四步:测试
通过浏览器输入http://服务器IP或域名/stu ... 能浏览页面,
注:如果在局域网测试中出现错误,首先查看是否设置了代理,如设置了请取消;另外如果访问不到,在客户端的hosts文件中手工添加Apache服务器端的IP与主机名的对应记录。 |
|