Вот сценарий:
- В
index.php
корневой папке есть файл - включены некоторые файлы,
index.php
которые находятся вincludes
папке. - Еще 1 файл (
submit.php
) находится в корневой папке для действия отправки формы.
Я хочу ограничить прямой доступ пользователей к файлам в includes
папке с помощью htaccess. также для submit.php
. Но include будет работать для index.php
файла. Мол, если пользователь вводит www.domain.com/includes/somepage.php
, он его ограничит (может быть перенаправлен на страницу с ошибкой).
Это чистое
mod_rewrite
решение:Это покажет запрещенную ошибку для использования, если URI содержит либо
/includes/
или/submit.php
источник
Можно использовать директиву Files и запретить доступ ко всем файлам, а затем использовать ее снова, чтобы установить файлы, которые доступны:
источник
1 лайнер на основе mod_alias:
Это покажет запрещенную ошибку для /folder/file.php
источник
^folder
.Если я правильно понимаю, вы просто хотите запретить доступ к папке включенных?
.Htaccess с директивой DENY FROM ALL, помещенный в папку include, сделает свое дело.
источник
Ваш Q состоит из двух частей, решения jeroen и anubhava работают в части I - отказ в доступе к / includes. Анубхава также работает для второй части. Я предпочитаю последнее, потому что использую
DOCROOT/.htaccess
все равно и это сохраняет весь такой контроль в одном файле.Однако то, что я хотел обсудить, это понятие «отказ в доступе
submit.php
». Если вы не хотите использоватьsubmit.php
зачем вообще это в DOCROOT? Я подозреваю, что ответ здесь заключается в том, что вы используете его как цель действия в некоторых формах и хотите, чтобы он запускался только при отправке формы, а не напрямую, например, от спам-бота.Если это так, то вы не можете использовать часть II анубхавы, так как это приведет к провалу формы. Что вы можете сделать здесь: (i) с
.htaccess
проверкой, чтобы убедиться, что реферал был вашей собственной страницей индекса:И (ii) в генераторе форм PHP index.php включить некоторые скрытые поля для отметки времени и проверки. Проверка может быть, скажем, первые 10 символов MD5 метки времени и некоторый внутренний секрет. После обработки отправки вы можете (i) проверить, что метка времени и проверка совпадают, и (ii) метка времени находится, скажем, в пределах 15 минут от текущего времени.
Таким образом, вы можете предотвратить рассылку спама, поскольку единственный практический способ, с помощью которого спамер может получить действительную пару отметок времени / валидации, - это проанализировать форму, но этот парсинг будет длиться всего 15 минут.
источник
В зависимости от возможных других опций, установленных на более высоком уровне, вам может понадобиться поместить следующее в ваш файл .htaccess в вашем каталоге include:
Я столкнулся с этим, когда верхний каталог определил базовую аутентификацию, включая строку:
Это мешало моему отказу от всех вступить в силу, потому что пользователи были аутентифицированы.
источник
Вы можете добавить следующую команду в
.htaccess
файлВ случае несанкционированного доступа будет отображено сообщение «здесь ничего нет».
Если вы хотите перенаправить с помощью кода ошибки на определенную страницу, вы можете определить команду следующим образом:
Он будет перенаправлен на
/errors/404.html
экран и покажет пользовательскую страницу, которая не найдена.источник