Изменить URL-адрес запроса в промежуточном программном обеспечении [Laravel 5.3]

#laravel-5 #request #middleware

#laravel-5 #запрос #промежуточное программное обеспечение

Вопрос:

Я хочу перенаправить свой сайт на поддомен, зависящий от языка браузера.

Я имею в виду, если вы перейдете к

example.com

промежуточное программное обеспечение перенаправляет на

en.example.com

Если ваш язык браузера, это английский.

Итак, как изменить $request в промежуточном программном обеспечении для перенаправления на поддомен?

Ответ №1:

В вашем промежуточном программном обеспечении получите доступ к языку браузера из,

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

и выполните

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

Вам понадобятся некоторые условия if, чтобы выбрать правильный поддомен.

Комментарии:

1. Я не хочу определять маршрут. Я хочу изменить $request для выполнения a return $next($request); . Если я отвечу на ваш ответ, я получу неверный маршрут, потому что у меня нет этого маршрута.

2. Что, если вы это сделаете redirect()->to("subdomain".$request->url()") ?

3. Я получаю Call to a member function send() on null