使用Klein-PHP过滤请求

时间:2015-04-17 12:03:21

标签: php routes

我在我的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();

?>

1 个答案:

答案 0 :(得分:1)

在<{>}路由部分中的Github page for Klein.php这个小例子右侧:

// Match all requests that _don't_ start with /admin
$klein->respond('!@^/admin/', ...

我认为您基本上希望相反(匹配执行/restricted开头的所有请求),所以让我们删除{{1 (否定)并替换正确的文件夹名称:

!