Как гласит название, все маршруты в моем приложении laravel, кроме маршрута дома ('/'), приводят к ошибке 404.
Я отделил общую папку от остальной части приложения laravel, как показано ниже в структуре папок. EDIT: Я подтвердил, что это не то, что вызывает проблему.
Эта ошибка возникает как для системы разработки (локальной), так и для производственной системы (общий хостинг).
EDIT: Я забыл упомянуть: маршруты работают, если я перехожу к localhost / index.php / route_name
Структура папки: (имена папок изменены на общедоступные / и laravel / для удобства)
. +-- public/ | +-- index.php | +-- packages/ | +-- etc... +-- laravel/ | +-- app/ | +-- artisan | +-- etc...
routes.php:
<?php Route::get('/', function() // Only this route works { return 'hello world'; }); Route::get('oversikt', function() // This route does not work { return 'goodbye world'; });
самонастройки / paths.php:
<?php return array( 'app' => __DIR__.'/../app', 'public' => __DIR__.'/../../pc', 'base' => __DIR__.'/..', 'storage' => __DIR__.'/../app/storage', );
index.php:
<?php require __DIR__.'/../pc_backend/bootstrap/autoload.php'; $app = require_once __DIR__.'/../pc_backend/bootstrap/start.php'; $app->run();
.htaccess: (немодифицированный)
<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>
Существует почти идентичный вопрос здесь о stackoverflow , но он не дает ответа.
Как я могу это решить?
После установки AllowOverride всем в apache2.conf и включении mod_rewrite с командой a2enmod rewrite
все это работает.