Подтвердить что ты не робот

Как остановить вспомогательную директорию, наследующую правила родительского htaccess

В моем основном каталоге public_html есть следующие правила .htaccess:

Options +FollowSymLinks
IndexIgnore */*
<IfModule mod_rewrite.c>
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>

Проблема заключается в том, что у меня есть подкаталог с именем source, и я хочу, чтобы этот каталог просто отображал файлы внутри него (потому что нет индексного файла). Проблема заключается в том, что вышеупомянутый родительский каталог правил htaccess не приводит к тому, что в каталоге не отображаются файлы в источнике (он просто перечисляет пустой индекс).

Как я могу это решить?

спасибо

4b9b3361

Ответ 1

Измените свой .htaccess следующим образом:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# if request is not for the /sub-dir/
RewriteCond %{REQUEST_URI} !^/sub-dir/ [NC]
# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>

Ответ 2

Это может быть очевидным, и вы уже пробовали - но вы создали файл .htaccess в подпапке, представляющей интерес? Любые настройки в этом файле переопределяют эквивалентные настройки в корневой папке.

UPDATE:

Для файла root.htaccess вместо IndexIgnore */* ... пытаться Options -Indexes

Затем в файле подпапки .htaccess поместите эту единственную строку: Options +Indexes

Достигает ли этого желаемого эффекта?