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

Raf*_*del 12 php http-status-code-404 laravel

我是Lavarel框架的初学者.我知道MVC结构,因为我之前在ASP.net中使用过它,但使用Laravel对我来说很困惑.

photozoom使用以下命令在目录中安装了Laravel :

composer create-project laravel/laravel photozoom --prefer-dist
Run Code Online (Sandbox Code Playgroud)

这是我的app/routes.php:

<?php

Route::get('/', function()
{
    return View::make('hello');
});

Route::get('users', function()
{
    return 'users route is working!';
});
Run Code Online (Sandbox Code Playgroud)

当我跑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>
Run Code Online (Sandbox Code Playgroud)

users.blade.php :

@extends('layout')

@section('content')
    Users!!!
@stop
Run Code Online (Sandbox Code Playgroud)

但是,当我打电话给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>
Run Code Online (Sandbox Code Playgroud)

我使用的是PHP 5.5,Apache 2.4.6.

任何帮助,将不胜感激.


已解决 启用mod_rewrite后,我也必须启用AllowOverride.

Fra*_*anz 21

试试吧http://localhost/photozoom/public/index.php/users.然后启用漂亮的URL.


小智 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>
Run Code Online (Sandbox Code Playgroud)