Как закрыть прямой доступ к папке через htaccess?

PHP Комментариев нет

Представим себе следующую ситуацию, у нас есть файл index.php.

Внутри него мы через встроенную функцию include подключаем какой-либо файл, пусть это будет к примеру random.php из папки inc.

В файл index.php пропишем:

<?php
    include "inc/random.php";
?>

В сам файл random.php пропишем слово Random, чтобы было просто видно, что он подключился в файле index.php.

php htaccess 10 php htaccess 11

Мы хотим сделать так, чтобы прямой доступ к файлу random.php не был разрешён, то есть был запрещён.

И вот мы видим, что файлы index.php и random.php показывают нам содержимое со словом Random.

php htaccess 1 php htaccess 2

Но ситуация может быть следующая..

К примеру мы хотим показать содержимое файла random.php, но пользователю нужно сначала ввести пароль. Соответственно, если правильно введён пароль, мы показываем пользователю содержимое, иначе — не показываем.

Но проблема в том, что файл random.php лежит в папке inc, и любой пользователь, зная адрес этого файла может на него зайти. Это можно сделать перейдя по адресу junior/inc/random.php.

Нам хотелось бы сделать так, чтобы функция include из этой папки была разрешена и срабатывала, но прямое обращение к папке inc было запрещено.

В этом случае нам поможет файл под названием .htaccess, точнее по факту этот файл имеет только расширение без названия. Файл .htaccess мы создаём в папке inc, так как именно к ней мы хотим запретить доступ.

В файл .htaccess пропишем директиву deny from all. В таком случае любой пользователь, который захочет обратиться по адресу junior/inc/random.php увидит подобную ошибку, о том что доступ к файлу не разрешён — Ошибка 403.

php htaccess 12php htaccess 3

Однако всё же подключение через функцию include и соответственно содержимое файла random.php мы получать будем!

Ужасно..Плохо..Нормально!Хорошо!Отлично! (1 баллов: 5,00 оценок)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *