我是Lavarel框架的初学者。我知道MVC结构,因为我之前在ASP.net中使用过它,但使用Laravel对我来说很困惑。
我使用以下命令在photozoom
目录中安装了Laravel:
composer create-project laravel/laravel photozoom --prefer-dist
这是我的app/routes.php
:
<?php
Route::get('/', function()
{
return View::make('hello');
});
Route::get('users', function()
{
return 'users route is working!';
});
当我运行http://localhost/photozoom/public/users
时,出现404 Not Found
错误。
但是当我尝试http://localhost/photozoom/public/
时,会调用/
的路由并调用相应的视图。
我甚至尝试为users
路线创建视图。使用Laravel文档。我创建了两个文件:
layout.blade.php
:
<html>
<head>
<title>Laravel Quickstart</title>
</head>
<body>
<h1>Laravel Quickstart</h1>
@yield('content')
</body>
</html>
users.blade.php
:
@extends('layout')
@section('content')
Users!!!
@stop
但是,当我致电http://localhost/photozoom/public/users
时,我得到404 Not Found error
。
这是我的public/.htaccess
文件:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我正在使用PHP 5.5,Apache 2.4.6。
任何帮助都将不胜感激。
解决
启用mod_rewrite后,我也必须启用AllowOverride
。
答案 0 :(得分:20)
暂时尝试http://localhost/photozoom/public/index.php/users
。然后启用pretty URLs。
答案 1 :(得分:7)
/ public目录中的.htaccess文件可以启用漂亮的URL。 为了使.htaccess文件能够完成它的工作:
例如:
<Directory /var/www/photozoom/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
答案 2 :(得分:0)
httpd.conf文件中有两个AllowOverride。
<Directory />
AllowOverride All
Require all denied
</Directory>
和
DocumentRoot "D:/www"
<Directory "D:/www">
AllowOverride All
Require all granted
</Directory>
答案 3 :(得分:0)
如果您正在运行Windows 10,那么您只需要做一件简单的事情。
在c:/ wamp64 / www /中创建新文件夹 从laravel文件夹中复制您的所有文件并粘贴到您刚创建的文件夹中,这就是我的解决方案。