Я новичок в laravel. Я использую Ubuntu 15.04. Я установил Laravel Framework версии 5.1.7 (LTS), используя композитор и сервер ламп, используя команду $ sudo apt-get install lamp-server^
(я не установил Homestead). Я использую PhpStorm 8.0.3
как IDE.
Я создал три маршрута и контроллер. Файл PagesController.php
выглядит следующим образом:
class PagesController extends Controller
{
public function index()
{
return 'Welcome to my homepage!';
}
public function about()
{
return 'Learn a little about me.';
}
public function hello()
{
return 'Hello World!';
}
}
и routes.php
выглядит следующим образом:
Route::get('/', '[email protected]');
Route::get('about', '[email protected]');
Route::get('hello', '[email protected]');
Всякий раз, когда я иду на http://localhost:63342/my-first-app/public/
(или http://localhost:63342/my-first-app/public/index.php
), он отлично работает и показывает мне сообщение Welcome to my homepage!
. Но всякий раз, когда я перехожу к http://localhost:63342/my-first-app/public/hello
или http://localhost:63342/my-first-app/public/about
, я получаю сообщение 404 Not Found
.
Кроме того, файл .htaccess
, расположенный в my-first-app/public
, выглядит следующим образом:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Что я пробовал:
- Я пробовал
http://localhost:63342/my-first-app/public/index.php/hello
илиhttp://localhost:63342/my-first-app/public/index.php/about
, но он тоже не работает. - Я ввел команду
sudo a2enmod rewrite
, за которой следуетsudo service apache2 restart
, но она также не работает. - Я пробовал
composer dump-autoload
, но он тоже не работает. -
Я изменил
AllowOverride
сNone
наAll
вapache2.conf
. Теперь часть его выглядит следующим образом:<Directory /> Options FollowSymLinks AllowOverride All Require all denied </Directory> <Directory /usr/share> AllowOverride All Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> <Directory /srv/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
но он также не решает проблему.
Обновление (7/15/2015):
Результат работы php artisan route:list
выглядит следующим образом:
+--------+----------+-------+------+--------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------+------+--------------------------------------------+------------+
| | GET|HEAD | / | | App\Http\Controllers\[email protected] | |
| | GET|HEAD | about | | App\Http\Controllers\[email protected] | |
| | GET|HEAD | hello | | App\Http\Controllers\[email protected] | |
+--------+----------+-------+------+--------------------------------------------+------------+