2013-02-10 4 views
0

Я строй проект с микро рамками Silex, на моем локальном хосте Я использую Apache 2.2.22 Вот структура:Url Переписывая силикатный

/var/www/ProjectName/ 
    vendor/ 
    web/ 
     .htaccess 
     index.php 

В моем .htacces есть является:

FallbackResource /index.php 

Домашняя страница работает отлично, но когда я пытаюсь перейти на страницу, которая требует URL переписывания, я получил 404. Вот код для второго контроллера:

$app->get('/view/{token}', function (Request $request, $token) use ($app, $db) { 
    echo 'ok';exit; 

    return $app['twig']->render('home.twig.html'); 
}) 
->bind('view'); 

Что я делаю неправильно?

+0

вы используете Apache 2.2.16? вы запрашиваете с localhost или подпуть? какой у вас веб-сайт, веб-папка? – mpm

+0

Ну, я не эксперт по силексу, но ошибка может исходить от вашего контроллера. Ваш оператор 'return' никогда не может пострадать, поскольку вы запускаете' exit' раньше. Таким образом, ваш вызов 'bind()' может работать не так, как ожидалось ... – cheesemacfly

+0

Пробовал ли вы без указания ведущей '/' в директиве FallbackResource? – Maerlyn

ответ

0

я решил мою проблему, она не имела ничего общего с Silex. я просто забыл, чтобы изменить директиву AllowOverride None на AllowOverride All в/и т.д./apache2/сайтов-доступных/по умолчанию

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 
0

Webroot находится в /вар/WWW и проект в/вар/WWW/ProjectName/веб

и

Я попытался локальный/ProjectName/view/randomtoken

Вам следует получить доступ к проекту w Ith

локальный/ProjectName/веб/просмотр/randomtoken

+0

Это что я пытался сначала, но это не работает :( –