搜尋

首頁  >  問答  >  主體

關於PHP 的 Laravel 框架的路由問題,求大神解答

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

天蓬老师天蓬老师2713 天前904

全部回覆(5)我來回復

  • 欧阳克

    欧阳克2017-06-30 09:54:44

    apache的重寫配置有問題。 url重寫沒成功。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-06-30 09:54:44

    我都是直接在nginx或apache中直接定位到public目錄的,也就是說會自動存取public/index.php

    回覆
    0
  • 代言

    代言2017-06-30 09:54:44

    基本上確定是url重寫的原因,我前幾天也碰到了,我跟著教學寫127.0.0.1/Laravel/public/user報錯。靈機一動,換成127.0.0.1/Laravel/publicindex.php//user就好了。 。對於這樣的,樓主不必死磕,很浪費時間,知道原理就行了。學到後面很多問題迎刃而解!

    回覆
    0
  • 为情所困

    为情所困2017-06-30 09:54:44

    新增路由重定向
    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 ^(.*)/$ / [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

    回覆
    0
  • typecho

    typecho2017-06-30 09:54:44

    樓上的大神說的都很對了,但是我懷疑是不是你在public文件夾下的分佈式配置文件沒了,.htaccess文件你看下有嗎,說起來的話,不可能對public文件夾下的訪問可以跳過index.php,所以我建議你查看下這個文件是不是有問題.

    回覆
    0
  • 取消回覆