безжировая структура, работающая только через cli

Я только начал пытаться использовать безжировую структуру. Я не понимаю, что я делаю неправильно здесь. У меня есть следующий код, который я получил с их сайта:

$f3 = require('/var/tmp/fatfree-master/lib/base.php');
$f3->route('GET /',
    function() {
        echo 'Hello, world!';
    }
);

$f3->run();
?>

Когда я запускаю следующий код с помощью cli, например, этот php index.php, он работает нормально. Но когда я пытаюсь перейти к нему через браузер, я получаю следующую ошибку:

Not Found

HTTP 404 (GET /index.php)

Я не понимаю, как это работает через cli, а не через браузер. Кто-нибудь сталкивался с этим раньше?


person Brad Hazelnut    schedule 08.07.2014    source источник
comment
index.php находится в корневом каталоге вашего документа?   -  person Phil    schedule 08.07.2014
comment
Вы настроили htaccess и переписали правила? github.com/bcosca/fatfree#sample-apache-configuration .. выглядит как будто по умолчанию вместо этого пытаются найти индексный файл для каталога (index.php)   -  person Ben    schedule 08.07.2014


Ответы (1)


Забудьте все о любых файлах PHP в вашем URL. Они вам не нужны, и вы не используете их ни в одном URL-адресе. Итак, просто откройте example.org/ вместо example.org/index.php и все заработает.

Также убедитесь, как упомянул Бен в комментариях, правильно настроить .htaccess, как описано здесь: https://github.com/bcosca/fatfree#sample-apache-configuration

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L,QSA]
person sascha    schedule 08.07.2014
comment
Круто работает!! но как я могу заставить его работать с переходом на index.php, единственная причина, по которой я спрашиваю, заключается в том, что если у меня есть ссылка на сайте, которая указывает на это, она не будет работать. - person Brad Hazelnut; 08.07.2014
comment
Вы можете перенаправить через .htaccess. Это может выглядеть так: Redirect /index.php /. Другой способ: вы создаете новый маршрут в F3, например $f3->route('GET /index.php', function($f3) { $f3->redirect('/'); }. Просто пример, который может не работать так. - person sascha; 09.07.2014
comment
@Brad Hazelnut Думайте об index.php как о точке входа для всех запросов через Fat Free. Ссылки на вашем сайте должны ссылаться на настроенные вами маршруты, такие как / или /blablah, но не должны напрямую ссылаться на index.php. Думаю, это уже имеет смысл :-) - person nikolaosinlight; 11.09.2016