`

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

分享到:
评论

相关推荐

    Apache之AllowOverride参数使用说明

    ### Apache之AllowOverride参数使用说明 #### 一、概述 在使用Apache服务器的过程中,我们经常需要利用其强大的重写(Rewrite)功能来对URL进行重写或重定向操作。这些重写规则通常会被写入到`.htaccess`文件中。...

    apache_http.conf详解

    `Options` 指令可以启用或禁用特定的目录特性,如 `FollowSymLinks` 允许符号链接,`Indexes` 自动列出目录内容,而 `AllowOverride` 决定 `.htaccess` 文件中可以使用的指令类型。 `Order`、`Allow` 和 `Deny` ...

    Apache 的 httpd.conf 详解

    ### Apache的httpd.conf配置详解 #### 一、概述 `httpd.conf` 是Apache Web服务器的核心配置文件,它控制着服务器的行为与功能。通过合理地配置这些参数,可以极大地提高服务器的安全性、性能和可扩展性。下面将对...

    Apache配置文件详解

    ### Apache配置文件详解 #### 一、概述 Apache配置文件是Apache Web服务器的核心组成部分,用于定义服务器的行为方式、性能参数及安全策略等。通过合理的配置,可以极大地提高Apache的性能和安全性,使其能够更好...

    Apache下htaccess的配置使用详解

    这篇内容将详细介绍如何利用`.htaccess`进行配置,包括自定义错误页面、禁止目录浏览、地址重定向、目录保护以及防止图片盗链。 首先,为什么需要使用`.htaccess`呢?当我们在没有服务器管理权限的情况下,例如租用...

    Apache配置详解(最好的APACHE配置教程).doc

    * Options:配置在特定目录使用哪些特性,常用的值和基本含义如下: + ExecCGI:在该目录下允许执行 CGI 脚本。 + FollowSymLinks:在该目录下允许文件系统使用符号连接。 + Indexes:当用户访问该目录时,如果...

    apache的httpd.conf文件配置详解

    - `Options`:控制目录的特性,如`FollowSymLinks`允许使用符号链接,`Indexes`允许显示目录索引,`ExecCGI`允许执行CGI脚本等。 - `AllowOverride`:指定是否允许在`.htaccess`文件中覆盖某些配置,如`None`不...

    Apache配置详解(最好的APACHE配置教程)

    `Options`、`AllowOverride`、`Order`和`Allow/Deny`规则通常在这个上下文中定义。 - **`Options`**:允许启用或禁用特定目录的特性。`FollowSymLinks`允许使用符号链接,`ExecCGI`允许在此目录中执行CGI脚本,`...

    Apache配置详解

    ### Apache配置详解:深入解析与优化策略 #### 一、Apache服务器基础配置解析 Apache作为全球最广泛使用的Web服务器之一,其配置文件`httpd.conf`是管理与控制服务器行为的核心。以下是对部分关键配置项的详细解读...

    UbuntuApache配置以及cgi配置.pdf

    ### Ubuntu Apache 配置及 CGI 配置详解 #### 一、Apache 的安装与基本配置 **背景介绍:** 在 Linux 系统中,Apache 是一个广泛使用的 Web 服务器软件,用于托管静态网页和动态内容。本文档主要针对 Ubuntu 系统...

    Apache+PHP+Mysql\Apache配置详解

    ### Apache配置详解 #### 一、Apache基础配置 在配置Apache服务器时,核心配置文件`httpd.conf`至关重要。此文件决定了服务器的行为、性能以及安全等方面。以下将详细介绍`httpd.conf`文件中的关键配置项及其意义...

    CentOS下Apache配置多域名或者多端口映射

    ### CentOS 下 Apache 配置多域名或多端口映射详解 #### 一、概述 在 CentOS 系统中,Apache 是一个广泛使用的 Web 服务器软件,它可以用来托管多个不同的网站或应用服务。为了实现这一点,我们需要对 Apache 进行...

    apache安装详解

    5. **启动Apache**: 安装完成后,可以使用`/usr/local/apache2/bin/apachectl start`命令启动Apache服务器。在Linux上,你还可以通过服务管理工具(systemd、init.d等)来管理Apache服务。 ### `httpd.conf`配置...

    Apache的配置文件http.conf参数含义详解

    Apache 配置文件 http.conf 参数含义详解 Apache 配置文件 http.conf 是 Apache 服务器的核心配置文件,它控制着 Apache 服务器的各个方面的行为。下面将详细解释 http.conf 文件中的各个参数含义。 基本配置 * `...

    apache 目录权限设置方法

    ### Apache目录权限设置详解 #### 一、Apache目录权限设置的重要性 在现代互联网环境中,Apache作为最广泛使用的Web服务器之一,其安全性尤为重要。通过合理的权限设置,不仅可以防止未经授权的访问,还能有效地...

    inux下Apache_配置详解

    `Options`指令允许指定目录支持的功能,如`FollowSymLinks`允许使用符号链接,`AllowOverride`可以控制`.htaccess`文件中是否允许覆盖配置。 `Order`和`Allow/Deny`规则用于控制访问控制列表(ACL),决定哪些IP或...

    apache虚拟目录和虚拟主机设置详解

    ### Apache虚拟目录和虚拟主机设置详解 #### 一、虚拟目录(Alias) 在Apache服务器配置中,虚拟目录(也称为别名)是一种重要的技术,它允许我们定义一个URL路径,并将其映射到服务器上的实际物理目录。这不仅提高...

Global site tag (gtag.js) - Google Analytics