Laravel PHP框架的新手.除了“/";不会';不起作用


New to Laravel PHP framework. Routes other than "/" doesn't work

我是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文件夹复制所有文件并粘贴到您刚刚创建的文件夹中,这就是我的解决方案。