我在我的PHP项目中使用Klein.php进行路由。我的项目目录具有以下结构:
myProject
|
*---Restricted--
| |
| *---index.php
| |
| *---blah.html
| |
| *---some_directory
|
|
*---some_other_directories
|
*---index.html
|
*---fun.html
|
*---css
|
*---js
我想要的是仅处理对Restricted
文件夹的所有请求。对于其他一切,我只是希望服务器完成它的工作,即只是提供其余的文件。
我如何实现这一目标?
修改
我把它配置为CORY的回答:
// .htaccess file
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
和
// index.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
$klein = new \Klein\Klein();
$klein->respond('@^/Restricted/', function () {
// checking if authenticated user
});
$klein->dispatch();
?>
答案 0 :(得分:1)
在<{>}路由部分中的Github page for Klein.php
这个小例子右侧:
// Match all requests that _don't_ start with /admin
$klein->respond('!@^/admin/', ...
我认为您基本上希望相反(匹配执行以/restricted
开头的所有请求),所以让我们删除{{1 (否定)并替换正确的文件夹名称:
!