Apache 如何防止.htaccess继承?
AFAIK默认情况下,解析指向请求文件的所有目录中的所有.htaccess文件,即在此设置中:Apache 如何防止.htaccess继承?,apache,.htaccess,Apache,.htaccess,AFAIK默认情况下,解析指向请求文件的所有目录中的所有.htaccess文件,即在此设置中: DOC\u ROOT=/usr/local/www/data 上述目录中的AllowOverride设置为All 如果请求位于/dir1/dir2/dir3/file的文件,则将检查/下的所有文件夹是否有.htaccess。如果找到该文件,将对其进行解析,然后根据.htaccess文件的组合内容继续执行 下面是我的设置: DOC\u ROOT=/usr/local/www/data——所有静态和
DOC\u ROOT=/usr/local/www/data
- 上述目录中的
设置为AllowOverride
All
/dir1/dir2/dir3/file
的文件,则将检查/
下的所有文件夹是否有.htaccess
。如果找到该文件,将对其进行解析,然后根据.htaccess
文件的组合内容继续执行
下面是我的设置:
——所有静态和php文件都保存在这里DOC\u ROOT=/usr/local/www/data
- 在
中有一个DOC\u ROOT
,它重写了index.php的所有请求,但有些请求除外.htaccess
- 在
中有一个DOC_root
,在httpd.conf中有这样一个:/Python/root.wsgi
WSGIScriptAlias/apps/usr/local/www/data/Python/root.wsgi
<Directory "/usr/local/www/apache22/data/Python">
AllowOverride None
</Directory>
不允许超限
如果我确实将.htaccess放在Python文件夹中,并且关闭了
RewriteEngine
,这似乎可以完成任务,但我不想被迫将这样的文件放在每个子文件夹中,我不想使用.htaccess作为根目录。很遗憾,没有办法禁用继承。更简单的方法是在web根目录中为“其他所有内容”创建一个文件夹,然后在其中的.htaccess中,关闭RewriteEngine
语句
我认为您可以使用
RewriteCond
来禁用此功能。如果希望所有子文件夹都可以访问(并重写与现有子文件夹不匹配的任何内容),可以使用RewriteCond-d
最简单的方法是按目录在站点的.htaccess根目录中设置
假设您有一个子目录“Python”,您将把它添加到DOCROOT中的.htaccess中
重写规则^Python/*$-[L]并且您不能通过AllowOverride选项更改此规则?回答我自己的问题-AllowOverride在每个目录的基础上工作,即,如果在某个文件夹上设置为“无”,则该文件夹是启用了它的文件夹的子文件夹,将解析其父文件夹的.htaccess,但不会解析其自己的.htaccess。