На старом сайте, где я использовал 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 не делает), тогда вам нужно только беспокоиться, если кто-то правильно догадается. Вы всегда можете заблокировать доступ, отказавшись от реферера или чего-то подобного.