Как предотвратить наследование .htaccess? - PullRequest
3 голосов
/ 06 ноября 2011

AFAIK по умолчанию все файлы .htaccess во всех каталогах, ведущих к запрашиваемому файлу, анализируются, т.е. в этой настройке:

  • DOC_ROOT = /usr/local/www/data
  • AllowOverride имеет значение All в указанном выше каталоге

если запрашивается файл на /dir1/dir2/dir3/file, все папки с / и ниже проверяются на .htaccess. Если файл найден, он анализируется, а затем выполнение продолжается на основе объединенного содержимого файлов .htaccess.

Итак, вот мои настройки:

  • DOC_ROOT = /usr/local/www/data - здесь хранятся все статические и php файлы.
  • в DOC_ROOT есть .htaccess, который переписывает все, кроме некоторых запросов, к index.php.
  • есть /Python/root.wsgi в DOC_ROOT и в httpd.conf есть это: WSGIScriptAlias /apps /usr/local/www/data/Python/root.wsgi

Как вы можете себе представить, я не хочу, чтобы .htaccess вообще использовался для папки / Python, но это так. Как мне это предотвратить?

Я попытался установить это в httpd.conf, но он не работает:

<Directory "/usr/local/www/apache22/data/Python">
    AllowOverride None
</Directory>

Если я помещу .htaccess в папку Python с RewriteEngine off, который, кажется, выполняет эту работу, но я не хочу, чтобы меня заставляли помещать такой файл в каждую из подпапок, к которым я не хочу получать root .htaccess будет использоваться.

Ответы [ 2 ]

4 голосов
/ 06 ноября 2011

К сожалению, нет способа отключить наследование. Более простым способом может быть создание единой папки в вашем корне сети для «всего остального», и в .htaccess туда поместите оператор RewriteEngine off.

Я думаю, вы можете сделать что-то с RewriteCond, чтобы отключить это. Если вы хотите, чтобы все подпапки были просто доступны (и переписывать все, что не соответствует существующей подпапке), вы можете использовать RewriteCond !-d.

0 голосов
/ 25 марта 2017

Самый простой способ - установить это в корне .htaccess вашего сайта для каждого каталога.

Итак, скажем, у вас есть подкаталог "Python", который вы добавили бы в .htaccess в своем DOCROOT.

RewriteRule ^ Python /.*$ - [L]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...