apache的AllowOverride以及Options使用详解

    通常利用Apache的rewrite模块对URL 进行重写的时候,rewrite规则会写在 .htaccess 文件里。但要使 apache能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。对于AllowOverride,还可以对它指定如下一些能被重写的指令类型。

    从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即

<Directory /> 
AllowOverride None 
</Directory> 

    在 AllowOverride 设置为None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在.htaccess 文件中。而对于URL rewrite 来说,至少需要把目录设置为:

< Directory /myblogroot/> 
AllowOverride FileInfo 
< /Directory> 

 

    在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All

Alias /php "c:/web/php/" 
<Directory "c:/web/php/"> 
Options Indexes FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
</Directory> 

    这样通过http://localhost:8080/php/访问时,/php/和其下面的子目录将支持url rewrite。

 

AllowOverride的参数:

 1. AuthConfig 允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

 2. FileInfo 允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。

3. Indexes 允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。

4. Limit 允许使用控制主机访问的指令(Allow, Deny, Order)。

5. Options[=Option,...] 允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项

 

Options参数
1.  All         准许以下除MultiViews以外所有功能
2.  MultiViews  允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用
3.  Indexes     若该目录下无index文件,则准许显示该目录下的文件以供选择
4.  IncludesNOEXEC  准许SSI,但不可使用#exec和#include功能
5.  Includes    准许SSI
6.  FollowSymLinks  在该目录中,服务器将跟踪符号链接。注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在<Local>;标记内设置,该选项会被忽略
7.  SymLinksIfOwnerMatch  在该目录中仅仅跟踪本站点内的链接
8.  ExecCGI     在该目录下准许使用CGI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值