laravel-子域路由未按预期工作

q43xntqr  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(271)

routes文件夹中有三个路由文件:
web.php
api.php
admin.php
我已经登记了档案 admin.php 在…内 boot() 方法 RouteServiceProvider 详情如下:

public function boot() {
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::domain("admin." . env("APP_URL"))
            ->namespace($this->namespace)
            ->group(base_path("routes/admin.php"));

        Route::domain("api." . env("APP_URL"))
            ->middleware("api")
            ->namespace($this->namespace)
            ->group(base_path("routes/api.php"));

        Route::middleware("web")
            ->namespace($this->namespace)
            ->group(base_path("routes/web.php"));
    });
}

假设我在web.php中定义了以下路由:

Route::get("test", function() {
    return "Hello from website route";
});

如果我尝试使用mywebsite.com/test访问此路由,它的行为与预期的一样。
但是,如果我尝试访问admin.mywebsite.com/test链接,它仍然会返回到mywebsite.com/test,并给出完全相同的输出。
这里有什么问题?

uelo1irk

uelo1irk1#

因为 web.php 不限于域。因此,针对您的laravel应用程序的每个域都可以访问其中定义的路由。
如果只希望根域访问在中定义的路由 web.php ,您可以在 RouteServiceProvider :

Route::middleware("web")
   ->domain(env("APP_URL")) // Add this line
   ->namespace($this->namespace)
   ->group(base_path("routes/web.php"));

相关问题