/www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess
而且,对此目录以外的每个文件访问,还有4个附加的文件系统访问,即使这些文件都不存在。 (注意,这可能仅仅发生在 / 允许使用.htaccess文件的情况下,虽然这种情况并不多。)
其次是安全。 如此,会允许用户修改服务器的配置,可能会导致未加限制的修改,请认真考虑是否给予用户这样的特权。 但是,如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求, 所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值, 并引导他们参阅相应的说明,以免日后许多麻烦。
注意,在/www/htdocs/example目录下.htaccess文件中放置指令,与, 在主服务器配置文件中<Directory /www/htdocs/example>段中放置相同指令, 是等效的。:
/www/htdocs/example中的.htaccess: /www/htdocs/example中.htaccess文件的内容
AddType text/example .exm httpd.conf文件中的段
<Directory /www/htdocs/example> AddType text/example .exm </Directory>
但是,把这个配置放置在服务器配置文件中则更加高效,因为只需要在Apache启动时读取一次, 而不是在有文件请求时每次都读取。
将AllowOverride设置为"none"可以完全禁止使用.htaccess文件。
AllowOverride None top 指令的生效
.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录, 但是,很重要需要记住的是,其更高级的目录也可能会有.htaccess文件, 而指令是按查找顺序依次生效,所以, 一个特定目录下的.htaccess文件中的指令可能会覆盖其更高级目录中的 .htaccess文件的指令,即, 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
例如:
目录/www/htdocs/example1中的.htaccess文件有如下内容:
Options +ExecCGI
(注意: 必须设置"AllowOverride Options"以允许在.htaccess文件中使用 "Options"指令。)
在目录/www/htdocs/example1/example2中的.htaccess文件有如下内容:
Options Includes
由于第二个.htaccess文件的存在,/www/htdocs/example1/example2中 的CGI执行是不允许的,而只允许Options Includes,它完全覆盖了之前的设置。 top 认证举例
如果你为了知道如何认证,直接从这里开始看,有很重要的一点需要注意,有一种常见的误解, 认为实现密码认证必须要使用.htaccess文件,其实不是这样。 把认证指令放在主服务器配置文件的<Directory>段中,是一个更好的方法, 而.htaccess文件应该仅仅用于无权访问主服务器配置文件的时候。 参见上述的使用.htaccess文件的场合。
有此声明在先,如果你仍然需要使用.htaccess文件,请看以下说明。
必须设置"AllowOverride AuthConfig"以允许这些指令生效
.htaccess文件的内容:
AuthType Basic AuthName "Password Required" AuthUserFile /www/passwords/password.file AuthGroupFile /www/passwords/group.file Require Group admins
注意,必须设置AllowOverride AuthConfig以允许这些指令生效
更详细的有关身份识别和认证的说明,请参见authentication tutorial。 top 服务器端包含举例
.htaccess文件的另一个常见用途是允许一个特定目录的服务器端包含(Server Side Includes), 可以在需要的目录中放置.htaccess文件,并如下配置:
Options +Includes AddType text/html shtml AddHandler server-parsed shtml
注意,必须同时设置AllowOverride Options和 AllowOverride FileInfo使这些指令生效。
更详细的有关服务器端包含的说明,请参见SSI tutorial。
上一篇:PHP实现定时生成HTML网站首页
下一篇:PHP中用正则表达式验证中文的问题
|