2015-04-17 2 views
2

Я использую Klein.php для маршрутизации в моем проекте 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

Как вы в настоящее время настроены? –

+0

@ Cᴏʀʏ Запрос сказать, что 'blah.html' должен быть перенаправлен index.php, но для файлов типа' fun.html' он должен просто быть отправлен. Прямо сейчас работают только те ссылки, которые имеют определенное правило, определенное в index.php, и для отдыха я вижу пустую страницу. – asaini

ответ

0

Право на Github page for Klein.php есть этот маленький пример в маршрутизации раздел:

// Match all requests that _don't_ start with /admin 
$klein->respond('[email protected]^/admin/', ... 

Я думаю, что вы в основном хотите напротив (сопрягать все запросы, которые сделать старт с /restricted), так что давайте удалить ! (отрицание) и подставить правильное имя папки:

// Match all requests that start with /Restricted 
$klein->respond('@^/Restricted/', ...