Я пытаюсь написать готовый PWA MVC фреймворк на PHP.Контроллеры и модели написаны на PHP, а представления - это простой HTML, поддерживаемый AJAX.
Итак, я начал с создания класса маршрутизации URL для управления запросами.Я также написал класс Session, и он работает нормально.
Но моя проблема здесь в том, что для кэширования мне нужны статические HTML-страницы на стороне клиента.Но я не хочу, чтобы эти файлы были доступны без входа в систему.Допустим, у меня есть структура папок, такая как:
/ LIBS
/ route.php
/ Static
/ index.html
index.php
Когда я ввожу URL-адрес, например: mysite.com/foo/bar
, класс маршрутизации выполняет работу и возвращает массив:
array (
0 => 'foo',
1 => 'bar',
)
Тоэто хорошо.Но когда я ввожу mysite.com/static
, он просто переходит в папку STATIC и приносит index.html, который находится внутри этой папки.
Я хочу, чтобы после успешного входа в систему эти файлы были доступны через php с контролем сеанса.Но я не хочу, чтобы мои посетители обращались к этим файлам перед входом в систему.
Я пытался отключить доступ с помощью htaccess, но на этот раз я тоже не смог получить к ним доступ через PHP.
Вот мой индекс php:
<?php
include "/LIBS/route.php";
$route = new Route;
$route->init();
Вот мой маршрутизатор
<code><?php
class Route {
// Prints the URL array
public function init()
{
echo '<pre>' . var_export($this->_getUrl(), true) . '
';} // получает текущий URL и возвращает массив закрытой функции _getUrl () {$ url = isset ($ _ GET ['url'])?$ _GET ['url']: null;$ url = rtrim ($ url, '/');$ url = filter_var ($ url, FILTER_SANITIZE_URL);$ url = explode ('/', $ url);вернуть $ url;}}
А вот и мой файл htaccess
php_flag display_errors on
php_value error_reporting 9999
RewriteEngine On
RewriteBase /mvc/
# DirectoryIndex none.none
# Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Существует своего рода соответствующий вопрос SO здесь , который не 'Кажется, это и есть ответ на мой вопрос.
Я копался везде, но не мог найти ответ.Чего мне не хватает?
Спасибо