apache 虚拟路径中参数 allowoverride 设置
在laravel 5中,在URL中,不需要添加index.php 就可以访问路由
AllowOverride是指确定允许存在于.htaccess文件中的指令类型
通 常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成“None”不允许任何Override(优先级)。
AllowOverride是什么
确定允许存在于.htaccess文件中的指令类型.
语法
AllowOverride All|None|directive-type [directive-type] ...
当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。
说明
仅允许存在于<Directory>配置段
AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。
如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。
具体应用
当AllowOverride指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。
directive-type可以是下列各组指令之一:
AuthConfig
允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
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指令。
Indexes
允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。
Limit
允许使用控制主机访问的指令(Allow, Deny, Order)。
Options[=Option,...]
允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。
例如:以下指令只允许在.htaccess中使用AuthConfig和Indexes组的指令:
AllowOverride AuthConfig Indexes
不在这两组中的指令将会导致服务器产生一个内部错误。
实际使用情况
大多数情况下用AllowOverride All即可
Email:yongxo@outlook.com