Включить / отключить htaccess с PHP? - PullRequest
0 голосов
/ 26 января 2019

Есть ли способ отключить htaccess для пользователей сайта? Что мне нужно, так это htaccess, чтобы отключить только для выбранной группы пользователей моего веб-сайта доступ к каталогу, заполненному загруженными изображениями, и для невыбранного пользователя был включен htaccess, чтобы запретить им доступ к каталогу!

Любая помощь будет отличной!

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Вы захотите сделать это: в основном перенаправить все запросы в php-файл, который затем контролирует доступ.

.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /CheckAuthorizedToFile.php?file=$1 [NC,L,QSA]

CheckAuthorizedToFile.php

<?php


$basepath = '/path/to/images/';
$realBase = realpath($basepath);

$userpath = $basepath . $_GET['file'];
$realUserPath = realpath($userpath);

if ($realUserPath === false || strpos($realUserPath, $realBase) !== 0) {
//prevent directory traversal by exiting execution
exit();
} 

if($_SESSSION['IsAllowedToViewFiles']===true)
{


$file = $_GET['file'];
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
}
else
{
echo "Not Autorized please login.";
}

0 голосов
/ 26 января 2019

htaccess управляется за пределами php (например, средой apache) и сканируется и выполняется до запуска сценария php. Так что ответ НЕТ.

Это связано с «Включить / отключить htaccess с PHP?» Сам Apache может управлять контролем доступа пользователями. Но это опять за пределами контроля PHP.

Возможное решение PHP: отключить доступ к каталогу через apache для всех и доставлять контент / файлы по php после проверки пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...