Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 26.07.2014 17:37:11

404 ошибка вместо NotFoundHttpException

Я перешел с виныд на линукс (kubuntu), и решил самостоятельно сконфигурировать сервер.

Сервер я настроил вот такой конфигруарцией

<VirtualHost *:80>
    ServerName my.dev
    ServerAlias www.my.dev
    DocumentRoot /home/volk/web/my.dev/public
    ServerAdmin me@localhost
    <Directory "/home/volk/web/my.dev">
        Require all granted
        Options +Indexes
    </Directory>
</VirtualHost>

И когда я захожу в корень сайта то всё работает.

Но когда я иду по любым другим путям (в независимости указанны они в routes.php или нет), мне выдается 404 ошибка. Не ларавельевская страница NotFoundHttpException, а именно простая апачевксая 404 ошибка.

Полазив по гуглу я понял что это проблема в .htaccess
То-есть если в пути написано Route::get('tasks/', 'TasksController@index');
То такой путь срабатывает по адресу http://my.dev/index.php/tasks

.htaccess который лежит в public выглядеть вот так (таким его создал laravel.phar)

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

так же я пробовал заменять его на вот этот (найден вот тут )

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

но все равно ничего не поменялось
я даже права 777 на него выставил (на всякий случай)

Модуль rewrite я, кажется, подключил (изначально он не был включен, и я самостоятельно создал символьную ссылку)

volk@sivadra:/etc/apache2/mods-enabled$ ls -Fal | grep "rewrite" 
lrwxrwxrwx 1 root root   30 июля  26 16:28 rewrite.load -> ../mods-available/rewrite.load

Хотя, когда я делаю apache2ctl -l у меня вылезает

volk@sivadra:/etc/apache2/mods-enabled$ apache2ctl -l
Compiled in modules:
  core.c
  mod_so.c
  mod_watchdog.c
  http_core.c
  mod_log_config.c
  mod_logio.c
  mod_version.c
  mod_unixd.c
volk@sivadra:/etc/apache2/mods-enabled$ 

то-есть в этом списки модуля rewrite нет, что вызывает сомнения в подключенности этого модуля.

Подскажите, дело в том что модуль rewrite не подключился? Или в я что-то с конфигурацией сервера напутал?
И как это вылечить? Спасибо.

Не в сети

#2 26.07.2014 17:56:24

Re: 404 ошибка вместо NotFoundHttpException

Всё я понял в чем дело
нужно было сделать

<VirtualHost *:80>
    ServerName my.dev
    ServerAlias www.my.dev
    DocumentRoot /home/volk/web/my.dev/public
    ServerAdmin me@localhost
    <Directory "/home/volk/web/my.dev">
        Require all granted
        Options +Indexes
        AllowOverride All
    </Directory>
</VirtualHost>

добавить AllowOverride All

Не в сети

Подвал раздела