我是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
。
暂时试用http://localhost/photozoom/public/index.php/users
。然后启用漂亮的URL。
/public目录中的.htaccess文件启用漂亮的URL。为了让.htaccess文件完成它的工作:
- Apache2必须启用mod_rewrite(a2enmod重写)
- 在Apache配置中,必须使用AllowOverride选项允许.htaccess文件"覆盖"默认的Apache2配置
例如:
<Directory /var/www/photozoom/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
httpd.conf文件中有两个AllowOverride。
<Directory />
AllowOverride All
Require all denied
</Directory>
和
DocumentRoot "D:/www"
<Directory "D:/www">
AllowOverride All
Require all granted
</Directory>
如果您运行的是windows 10,那么您只需要做一件简单的事情。
在c:''wamp64/www/中创建新文件夹从laravel文件夹复制所有文件并粘贴到您刚刚创建的文件夹中,这就是我的解决方案。