素材牛VIP会员
关于PHP 的 Laravel 框架的路由问题,求大神解答
 编***魔  分类:PHP代码  人气:1254  回帖:8  发布于6年前 收藏

我在routes/wen.php中定义了以下路由:

我访问public/index.php 时可以正常进入Index控制器中的Index方法,这个时候我的域名是:127.0.0.1/Laravel/public , 因为apache配置,所以默认打开了index.php 只在在域名中没有显示,
但是我定义了第二个路由,也就是根目录下的user 这个时候我再次访问 127.0.0.1/Laravel/public/user
结果出现以下错误

当我把index.php 加上变成了 127.0.0.1/Laravel/public/index.php/user 此时正常访问,不明白为什么,
为什么我看视频教程中别人都是直接访问的,不需要加上index.php

 标签:phplaravel

讨论这个帖子(8)垃圾回帖将一律封号处理……

Lv6 码匠
ai***ft PHP开发工程师 6年前#1

laravel的话推荐用 homestead

Lv2 入门
馨***茂 站长 6年前#2

我都是直接在nginx或者apache中直接定位到public目录的,也就是说会自动访问public/index.php

Lv5 码农
雨***啊 产品经理 6年前#3

添加路由重定向
Apache

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

nginx

Lv4 码徒
阿***q 站长 6年前#4

apache的重写配置有问题。url重写没成功。

Lv6 码匠
85***32 交互设计师 6年前#5

routes/wen.php ? 应该是 routes/web.php吧

Lv3 码奴
ch***26 技术总监 6年前#6

基本上确定是url重写的原因,我前几天也碰到了,我跟着教程写127.0.0.1/Laravel/public/user报错。灵机一动,换成127.0.0.1/Laravel/publicindex.php//user就好了。。对于这样的,楼主不必死磕,很浪费时间,知道原理就行了。学到后面很多问题迎刃而解!

Lv2 入门
jh***23 Web前端工程师 6年前#7

楼上的大神说的都很对了,但是我怀疑是不是你在public文件夹下的分布式配置文件没了,.htaccess文件你看下有吗,说起来的话,不可能对public文件夹下的访问可以跳过index.php,所以我建议你查看下这个文件是不是有问题.

Lv1 新人
阿***扫 JAVA开发工程师 6年前#8

你访问的127.0.0.1/Laravel/public其实完整的是127.0.0.1/Laravel/public/index.php

为什么我看视频教程中别人都是直接访问的,不需要加上index.php

为了使路由更美观,大多数网站都会选择隐藏 index.php ,具体的配置方法可以看 laravel 文档

当我把index.php 加上变成了 127.0.0.1/Laravel/public/index.php/user,此时正常访问,不明白为什么

因为你使用的这个web框架是采用了 mvc 模式,mvc的关键就是单一入口,所有操作都依赖这个index.php文件后面的/user你可以理解为参数

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取