Laravel集团路线问题

时间:2015-12-25 22:23:53

标签: php .htaccess laravel mod-rewrite laravel-routing

我使用此代码实现管理区域路由,但Route::get('/',...)无效,似乎我应该使用/以外的get以外的任何其他内容,否则当我浏览mysite/admin/时,laravel没有加载视图。

Route::group(['prefix' => 'admin', 'namespace' => 'admin', 'as' => 'admin'], function() {
    Route::get('/', function() {
        return view('backend.index');
    });
    Route::resource('post', 'PostController');
});

更新:admin中的public文件夹为public/admin。看来Laravel打开这个目录而不是通过路线!
是正常的吗?
公用文件夹结构优先于Route::get()吗?

1 个答案:

答案 0 :(得分:1)

如果admin文件夹中有public个文件夹,则显示此目录内容是正常的,但这不是Laravel问题。

如果你查看public/.htaccess,你就会有这样的事情:

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

因此,如果public目录中存在目录或文件,Laravel将不会启动应用程序,但服务器将显示此目录或此文件。这是应该做的,因为如果没有这样的规则没有CSS文件,可以显示JavaScript文件或图像。

您应该做的是将public文件夹中的目录名从admin更改为其他内容(然后在代码中进行更改以反映此更改)或将admin路由更改为别的什么