Представим себе следующую ситуацию, у нас есть файл index.php.
Внутри него мы через встроенную функцию include
подключаем какой-либо файл, пусть это будет к примеру random.php из папки inc.
В файл index.php пропишем:
<?php
include "inc/random.php";
?>
В сам файл random.php пропишем слово Random, чтобы было просто видно, что он подключился в файле index.php.
Мы хотим сделать так, чтобы прямой доступ к файлу random.php не был разрешён, то есть был запрещён.
И вот мы видим, что файлы index.php и random.php показывают нам содержимое со словом Random.
Но ситуация может быть следующая..
К примеру мы хотим показать содержимое файла random.php, но пользователю нужно сначала ввести пароль. Соответственно, если правильно введён пароль, мы показываем пользователю содержимое, иначе — не показываем.
Но проблема в том, что файл random.php лежит в папке inc, и любой пользователь, зная адрес этого файла может на него зайти. Это можно сделать перейдя по адресу junior/inc/random.php.
Нам хотелось бы сделать так, чтобы функция include
из этой папки была разрешена и срабатывала, но прямое обращение к папке inc было запрещено.
В этом случае нам поможет файл под названием .htaccess, точнее по факту этот файл имеет только расширение без названия. Файл .htaccess мы создаём в папке inc, так как именно к ней мы хотим запретить доступ.
В файл .htaccess пропишем директиву deny from all
. В таком случае любой пользователь, который захочет обратиться по адресу junior/inc/random.php увидит подобную ошибку, о том что доступ к файлу не разрешён — Ошибка 403.
Однако всё же подключение через функцию include
и соответственно содержимое файла random.php мы получать будем!