Laravel PHP框架的新功能。 " /"以外的路由;不起作用

时间:2013-08-28 15:10:56

标签: php laravel http-status-code-404

我是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

4 个答案:

答案 0 :(得分:20)

暂时尝试http://localhost/photozoom/public/index.php/users。然后启用pretty URLs

答案 1 :(得分:7)

/ 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>

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