fuelPHP: не могу получить доступ к моим контроллерам напрямую

Я пытаюсь изучать FuelPHP, и я пришел из CI фона. Я использую этот учебник, чтобы я мог ознакомиться с этим.

http://net.tutsplus.com/tutorials/php/getting-started-with-the-fuel-php-framework/

Моя проблема в шаге 2. Когда я получаю доступ к своему простому контроллеру

http://localhost/fuel/public/index.php/hello 

Я получаю ошибку 404.

* fuel - это каталог этого недавно установленного fuelPHP на моем локальном хосте.

Когда я устанавливаю этот маршрут по умолчанию, контроллер работает.

Что-то изменилось в новой версии, что вызвало это?

Вот мой.htaccess в папке /public/.

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Благодарю.

1 ответ

Вы делаете это очень сложно для себя, устанавливая FuelPHP следующим образом.

Он спроектирован таким образом, что папка public является корнем документа вашего веб-сервера, а это означает, что вся необходимая информация находится за пределами корня вашего документа, а.htaccess находится непосредственно в корне вашего документа.

Не только устанавливая его целиком в корневой каталог документа, но и в подпапку этого корневого документа, вы должны изменить правила перезаписи. Начните с добавления

RewriteBase /fuel/public

публично, и посмотрите, поможет ли это. Кроме того, этот.htaccess сделан для "стандартных" установок типа Apache. Если вы запускаете что-то еще, вам может понадобиться другой.htaccess. Если вы, например, используете fcgi, получите.htaccess из репозитория 1.4/velop, он более отказоустойчив по отношению к вашему типу веб-сервера.

Последнее замечание: вы не должны использовать localhost в качестве имени хоста. Это незаконное имя во многих RFC, одно из которых является документом, который документирует использование куки. У вас будут всевозможные проблемы с сессиями с некоторыми браузерами (версиями), если вы используете "localhost". Вместо этого настройте виртуальные хосты (в любом случае лучше, чем вложенные папки) и используйте имя хоста, например, "mymachine.local".

Другие вопросы по тегам