Блокирование внешнего доступа к каталогу, но разрешение доступа SSI (или, как работает директива `FilesMatch`?)

На старом сайте, где я использовал PHP, у меня был .htaccess в каталоге /noaccess следующим образом:

 # /noaccess/.htaccess <FilesMatch "^.*$"> order allow,deny deny from all </FilesMatch> 

И у меня был PHP-файл,

 <html> <body> <?php include('noaccess/blah.ssi'); ?> </body> </html> 

Это прекрасно работает, и содержимое blah.ssi видно.

Однако на моем текущем сайте я использую SSI и следующее:

 <html> <body> <!--#include virtual="noaccess/blah.ssi" --> </body> </html> 

не работает. В журналах нет unable to include "noaccess/blah.ssi" . Удалите директиву FilesMatch и он работает. Поэтому я, очевидно, неправильно понимаю, как работает эта команда, я не понимал, что это блокирует сам Apache. Итак, как я могу заблокировать доступ из Интернета, но разрешить доступ SSI? (Я думал, что могу (и должен) хранить материал, который мне не нужен, за пределами public_html но это, похоже, не работает ни в SSI include, – но в любом случае, даже если бы это было так, мне интересно узнать, как сделать это).

Спасибо, T.

    Насколько я знаю по опыту, mod_include следует ограничениям клиента, поэтому вы не можете делать то, что хотите, с директивами apache.

    Однако, если вы хотите скрыть включенные файлы, вы можете отключить индексы каталогов с Options -Indexes директивы Options -Indexes в вашем файле .htaccess . Кроме того, вы можете назвать включенные файлы сложным способом.

    Мой предпочтительный вариант будет использовать uuids, вы можете сгенерировать их с помощью онлайн-инструментов или установить некоторую утилиту на своей рабочей станции:

     itorres@localhost$ uuid 6e8feb48-1a3b-11e0-a0e3-00505624a126 itorres@localhost$ vi noaccess/6e8feb48-1a3b-11e0-a0e3-00505624a126.ssi 

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