如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。
所需要的指令如下:
SetEnvIf Referer “^http://www\.stahosting\.com/” local_ref
SetEnvIf Referer “^http://202\.102\.199\.141/” local_ref
SetEnvIf Referer “^$” local_ref
# Ban of the Wget Site Ripper
SetEnvIfNoCase User-Agent “^Wget” banned_useragent
<Directory /data/web/music>
Order Deny,Allow
Deny from all
Allow from env=local_ref
Deny from env=banned_useragent
</Directory>
在配置Apache时,除了可以在主配置文件(http.conf)中配置访问控制之外,还可以使用.htaccess 文件配置对指定目录的访问控制。使用.htaccess文件可以改变主配置文件中的配置,但是它只能设置对指定目录的访问控制,这个目录就是. htaccess文件存放的目录。在一个目录下设置了.htaccess文件之后,当用户使用浏览器访问此目录时,Apache会读取该文件的配置来覆盖主配置文件(http.conf)的配置。
注意:
1.修改.htaccess文件无需重新启动Apache服务器,而是立即生效。
2.在可能的情况下应该尽量避免使用.htaccess文件,因为使用 .htaccess文件会降低服务器的运行性能。
何时使用.htaccess文件
有如下两种情况需要使用.htaccess文件
*在多个用户之间分割配置
*想在不重新启动服务器的情况下改变服务器配置
使用.htaccess文件必须经过两个配置步骤
*首先在主配置文件中的启用并控制对.htaccess文件的使用
*然后在需要覆盖主配置文件的目录下生成.htaccess文件
在主配置文件中的启用并控制对.htaccess文件的使用
1.设置文件名称
必须保证在主配置文件中包含如下的配置语句:
AccessFileName .htaccess
<Files ~ “^\.htaccess”>
Order allow,deny
Deny from all
</Files>
2.控制在.htaccess文件中可以使用的指令组
要控制在.htaccess文件中可以使用的指令组,需要在主配置文件中使用AllowOverride指令。下面列出了可以在AllowOverride指令所使用的指令组。
指令组 可用指令 说明
============================
AuthConfig
AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require
进行认证、授权以及安全的相关指令
=============================
FileInfo
DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter
控制文件处理方式的相关指令
=============================
Indexes
AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName
控制目录列表方式的相关指令
==============================
Limit
Allow,Deny,Order
进行目录访问控制的相关指令
==============================
Options
Options, XBitHack
启用不能在主配置文件中使用的各种选项
=============================
All
全部指令组
可以使用以上所有指令
=============================
None
禁止使用所有指令
禁止处理.htaccess文件
==============================
生成.htaccess文件
当在主配置文件中配置了对.htaccess文件的启用和控制之后,接下来就可以在需要覆盖主配置文件的目录下生成.htaccess文件。.htaccess文件中可以使用的配置指令取决于主配置文件中AllowOverride指令的设置。
使用.htaccess文件举例
下面举一个简单的例子说明.htaccess文件的使用。
//首先在文档根目录下生成一个private目录,并创建测试文件
# cd /var/www/html
# mkdir private
# cd private
# touch test
//修改配置前,在客户浏览器查看结果,如图1所示
//修改主配置文件
# vi /etc/httpd/conf/httpd.conf
//添加如下配置语句
<Directory “/var/www/html/private”>
AllowOverride Options
</Directory>
#
//重新启动httpd
# service httpd restart
//在/var/www/html/private目录下生成.htaccess文件
# vi /var/www/html/private/.htaccess
//添加如下配置语句
Options –Indexes
#
//在客户浏览器中查看结果,
//通过查看配置结果,可以证明.htaccess已经生效。
//即对private目录的访问不生成文件列表