【问题标题】:Change URL of request in Middleware [Laravel 5.3]在中间件中更改请求的 URL [Laravel 5.3]
【发布时间】:2025-12-01 01:25:03
【问题描述】:

我想将我的网站重定向到子域取决于浏览器语言。

我是说如果你去

example.com

中间件重定向到

en.example.com

如果您的浏览器语言是英语。

那么,我如何更改中间件中的 $request 以重定向到子域?

【问题讨论】:

    标签: laravel-5 request middleware


    【解决方案1】:

    在您的中间件中,访问浏览器语言,

    $language = $request->server('HTTP_ACCEPT_LANGUAGE');
    

    然后,做一个

    if($language == "en"){
        redirect()->route("path to your subdomain");
    }else{
        //redirect to another sub domain
    }
    

    您需要一些 if 条件来确定正确的子域。

    【讨论】:

    • 我不想定义路线。我想修改 $request 以执行 return $next($request); 。如果我回答你的问题,我会得到一条无效的路线,因为我没有声明该路线。
    • 如果你这样做redirect()->to("subdomain".$request->url()")怎么办?
    • 我收到Call to a member function send() on null