QQ登录

登录  立即注册  找回密码

软件爱好者

搜索
查看: 305|回复: 0

[Apache] apache的AllowOverride以及Options使用详解

[复制链接]
  • TA的每日心情
    开心
    2023-2-18 07:09
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    252

    主题

    25

    回帖

    1532

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1532

    优秀版主

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

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即


    代码如下:

    <Directory />
    AllowOverride None
    </Directory>


    在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。

    而对于 URL rewrite 来说,至少需要把目录设置为


    复制代码代码如下:

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


    2.在要支持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


    1  AuthConfig  允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile  AuthGroupFile  AuthName AuthTypeAuthUserFile和Require
    2  FileInfo    允许使用文件控制类型的指令。它们包括AddEncoding AddLanguage  AddType  DEfaultType ErrorDocument LanguagePriority
    3  Indexes     允许使用目录控制类型的指令。它们包括AddDescription  AddIcon  AddIconByEncoding AddIconByType  DefaultIcon  DirectoryIndex  FancyIndexing  HeaderName  IndexIgnore  IndexOptions ReadmeName
    4  Limit       允许使用权限控制指令。它们包括Allow Deny和Order
    5  Options     允许使用控制目录特征的指令.他们包括Options 和XBitHack
    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|主题: 21, 订阅: 0
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|软件爱好者 ( 黑ICP备2022008596号-1 )

    黑公网安备 23060302000205号

    GMT+8, 2024-3-29 06:39 , Processed in 0.086642 second(s), 39 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表