Я использую 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>
Структура поставляется с общедоступным / .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>