.htaccess设置指南经典说明

2019-10-16 10:34:34王旭


/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。