Маршруты не работают без index.php

Я использую laravel 4.

У меня есть вид nest.blade.php и соответствующий контроллер NestController.php:

Содержимое контроллера:

 class NestController extends BaseController { public function showView() { return View::make('nest'); } } 

Маршрут:

 Route::get('/nest', 'NestController@showView'); 

Когда я перехожу к url ​​/ nest, это не работает. Когда я перехожу к url ​​/ index.php / nest, он работает.

Очевидно, я просто хочу, чтобы это было / гнездо без index.php.

Как я могу это решить?

Мой 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> 

Довольно URL

Структура поставляется с общедоступным / .htaccess файлом, который используется для разрешения URL без index.php. Если вы используете Apache для обслуживания вашего приложения Laravel, обязательно включите модуль mod_rewrite .

Если файл .htaccess который поставляется с Laravel, не работает с вашей установкой Apache, попробуйте следующее:

 Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] 

Для получения дополнительной информации см. Этот ответ .

Я включил модуль mod_rewrite на HTTP-сервере Apache, перезапустил службу Apache и снова протестировал его, и он РАБОТАЛ !!!

Ниже приведен код, который я использовал для включения mode_rewrite;

1) Отменить эту строку в Apache / conf / httpd.conf

Модули LoadModule rewrite_module / mod_rewrite.so

2) Создайте новую конфигурацию для «sample-project» без изменения конфигурации по умолчанию в файле httpd.conf

 Каталог "C: / Apache24 / htdocs / sample-project">
   Параметры индексов FollowSymLinks MultiViews
   AllowOverride All
   Разрешить заказ, отрицать
   Разрешить от всех
 Каталог>

Быть начеку! Если он не работает даже после включения перезаписи модуля. Вам нужно изменить строку «AllowOverride None» на «AllowOverride All» в httpd.conf.

Поскольку @ Alpha предупреждает, Laravel не нужно настраивать для этой цели.

Когда вы измените строку «AllowOverride None» на «AllowOverride All» в httpd.conf, убедитесь, что вы делаете это внутри каталога «<» …, который содержит допустимый путь. пример

 <Directory "/var/www/html"> #check path Options Indexes FollowSymLinks AllowOverride All </Directory>