php中覆盖url路由的文件夹访问

php中覆盖url路由的文件夹访问,php,model-view-controller,routing,directory,Php,Model View Controller,Routing,Directory,我正在尝试用PHP编写一个支持PWA的MVC框架。控制器和模型是用PHP编写的,视图是由AJAX辅助的纯HTML 因此,我开始构建一个URL路由类来管理请求。我还写了一个会话类,它运行良好 但我这里的问题是,我需要在客户端使用一些静态HTML页面,用于缓存目的。但是我不想在没有登录的情况下访问这些文件。假设我有一个文件夹结构,例如: / LIBS / route.php / Static / index.html index.php 当我

我正在尝试用PHP编写一个支持PWA的MVC框架。控制器和模型是用PHP编写的,视图是由AJAX辅助的纯HTML

因此,我开始构建一个URL路由类来管理请求。我还写了一个会话类,它运行良好

但我这里的问题是,我需要在客户端使用一些静态HTML页面,用于缓存目的。但是我不想在没有登录的情况下访问这些文件。假设我有一个文件夹结构,例如:

    / LIBS
        / route.php
    / Static
        / index.html
    index.php
当我输入一个类似于:
mysite.com/foo/bar
的URL时,routing类将执行此任务并返回一个数组:

array (
  0 => 'foo',
  1 => 'bar',
)
那很好。但当我进入
mysite.com/static
时,它只会进入静态文件夹,并带来位于该文件夹内的index.html

我希望在成功登录后,通过带有会话控制的php访问这些文件。但我不希望访问者在登录之前访问这些文件

我试图用htaccess禁用访问,但这次我也无法通过PHP访问它们

这是我的索引php:

<?php
include "/LIBS/route.php";
$route = new Route;
$route->init();
有一种相关的SO问题似乎不是我问题的答案

我到处搜寻,但找不到答案。我错过了什么

谢谢

<?php
class Route {
    // Prints the URL array
    public function init()
    {
        echo '<pre>' . var_export($this->_getUrl(), true) . '</pre>';
    }
    // gets the current URL and returns an array
    private function _getUrl()
    {
        $url = isset($_GET['url']) ? $_GET['url'] : null;
        $url = rtrim($url, '/');
        $url = filter_var($url, FILTER_SANITIZE_URL);
        $url = explode('/', $url);
        return $url;
    }
}
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]