Подтвердить что ты не робот

Laravel 4 простой маршрут не работает с помощью mod_rewrite и .htaccess

Я не только новичок в Laravel 4, но и новичок в использовании фреймворков. Я думал, что начну с Laravel, так как он получил такие хорошие отзывы. У меня хорошая установка Laravel. Я перехожу в /l 4/public и вижу страницу приветствия.

Я пытаюсь добавить маршрут к route.php, чтобы при перемещении к /l 4/public/articles я получил ответ.
Я получаю: "Запрошенный URL/l4/public/articles не был найден на этом сервере". Нужно ли мне запускать команду artisan для компиляции маршрутов? Вероятно, это легко. Почему это сообщение?

routes.php

Route::get('/', function()
{
    return View::make('hello');
});

Route::get('articles', function ()
{
    //return View::make('articles');
    return "Articles hello there";
});
4b9b3361

Ответ 1

Проблема решается двумя изменениями редактирования в файле apache httpd.conf.

AllowOverride None - значение по умолчанию. AllowOverride определяет, обрабатываются ли файлы .htaccess.

mod_rewrite закомментирован по умолчанию.

Изменения:

Изменить 1: активировать mod_rewrite, раскомментировав его.

Изменить 2:

Изменить

AllowOverride None

к

AllowOverride All

Теперь перезапустите Apache...

Файл .htaccess по умолчанию, который Laravel предоставляет в общей папке, указывает некоторые правила mod_rewrite. Эти правила не применялись, поскольку AllowOverride не был установлен. Обязательно перезапустите apache после изменения этих параметров. Моя конфигурация: Apache 2.4.6 в Windows XP.

По-видимому, могут быть некоторые последствия для безопасности для изменения AllowOverride. Если у кого есть дополнительная информация об этом, я бы хотел его услышать.

Ответ 2

Эта ошибка в основном говорит о том, что маршрутизатор не может найти ваш запрос. Убедитесь, что вы уже сохранили свои изменения. если вы используете команду artisan для запуска страницы, просто повторно запустите команду "Artisan Serve".

Ответ 3

Вам нужен mod_rewrite. Попробуйте: l4/public/index.php/articles

Ответ 4

в httpd.conf изменить

<Directory />
    AllowOverride none
    Require all granted
</Directory>

в

<Directory />
    AllowOverride all
    Require all granted
</Directory>

тогда раскомментируйте

#LoadModule rewrite_module modules/mod_rewrite.so

в

LoadModule rewrite_module modules/mod_rewrite.so