Это препятствовало тому, чтобы мой отказ от всех вступил в силу, потому что пользователи были аутентифицированы.

я есть PHP-файл, который наследует (включает) другие файлы PHP. Все унаследованные файлы находятся в одной папке, которая называется «включает». Я хочу иметь возможность ограничить любой прямой доступ к этой папке. Только файлы PHP внутри сервера могут связываться с файлами в папке «include». Как я могу использовать .htaccess для достижения такой цели?

К вашему сведению, я использовал следующий код, и он не работал

Order deny,allow
deny from all

Любая помощь будет оценена

 user53567329 апр. 2013 г., 12:01
Если это не работает, возможно, httpd.conf настроен так, чтобы не читать файлы .htaccess. Например: <Directory "/ path / to / webfiles"> AllowOverride None </ Directory> Замените на что-то другое (например, AllowOverride All) и перезапустите веб-сервер.

Ответы на вопрос(5)

Вы можете просто использоватьindex.php и передать заголовок 404, используяheader():

header('HTTP/1.1 404 Not Found', 404);

ИМО, это лучше, чем 403, так как папка не существует. Что касается включаемых файлов, поместите эту строку над первымinclude/require строка основного файла:

define('INCLUDED', true);

И для каждого файла в каталоге include поместите это в верхнюю часть.

if (!defined(INCLUDED)) {
    header('HTTP/1.1 404 Not Found', 404);
}
 John V.31 окт. 2012 г., 23:55
Вы также можете вызвать exit (); после заголовка, так как страница все еще может выполняться.

в ваших включает /., htaccess:

Order deny,allow
deny from all
 Эџad Дьdulяңмaи06 янв. 2011 г., 01:13
Попробовал но не получилось

используя следующие директивы в контексте htaccess или server.config:

Решение на основе мод-псевдонимов

Redirect 403 ^/folder/.+$

Это перенаправит все файлы и директории / folder / на страницу запрещенных ошибок 403.

Мод-переписать базовое решение:

RewriteEngine on

RewriteRule ^/?folder/.+$ - [F]
Решение Вопроса

а пределы области «Корень документа» и использовать include_path (то есть вы не можете получить к нему доступ из Интернета), введите

deny from all

в каталоге .htaccess в этом каталоге.

Однако альтернативой является использование директивы DEFINES, чтобы разрешить доступ к этим программам только через определенные авторизованные файлы. Например, положить

<?php defined('ACCESS_ALLOWED') or die('Restricted Access'); ?>

в верхней части включаемых файлов, а затем положить

<?php define('ACCESS_ALLOWED', 1); ?>

в программах, которым разрешено включать эти файлы.

Это предотвратит запуск случайных GET для тех включаемых файлов и будет работать для любого веб-сервера, а не только для тех, которые поддерживают файлы htaccess.

установленных на более высоком уровне, вам может понадобиться:

Satisfy all
Order deny,allow
Deny from all

Я столкнулся с этим, когда верхний каталог определил базовую аутентификацию, включая строку:

Satisfy any

Это препятствовало тому, чтобы мой отказ от всех вступил в силу, потому что пользователи были аутентифицированы.

Ваш ответ на вопрос