Перенаправление на поддомен со всеми путями и параметрами после домена - PullRequest
0 голосов
/ 26 февраля 2019

Как перенаправить пользователя с одной страницы на одну и ту же страницу, но в поддомене?

http://test.com на http://subdomain.test.com

http://test.com/page/page2/123 на http://subdomain.test.com/page/page2/123

https://test.com/catalog?r=44&color=red на https://subdomain.test.com/catalog?r=44&color=red

Поэтому я хочу перенаправить и сохранить все, что присутствует после subdomain.test.com в моем примере.Как я могу это сделать?

public function test($request)
    {
        $subdomain = Market::first()->subdomain;
        $domain = $this->get_domain($request);
        $protocol = $this->get_request_protocol($request);

        $to = $protocol . '://' . $subdomain . '.' . $domain; // all path and params?

        return Redirect::to($to);

    }

    private function get_domain($request)
    {
        $parts = explode('.', $request->getHost());
        $i = count($parts)-1;

        return implode('.', [$parts[$i-1], $parts[$i]]);
    }

    private function get_request_protocol($request)
    {
        if ($request->secure()) {
            return 'https';
        }

        return 'http';
    }

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

используйте это

private function get_back_path($url, $domain, $subdomain)
{
    $parts = parse_url($url);

    $url = $parts['scheme'] . '://' . $subdomain . '.' . $domain;
    if (isset($parts['path'])) {
        $url .= $parts['path'];
    }
    if (isset($parts['query'])) {
        $url .= '?' . $parts['query'];
    }
    if (isset($parts['fragment'])) {
        $url .= $parts['fragment'];
    }

    return $url;
}
0 голосов
/ 26 февраля 2019

Вы можете использовать redirect () -> away () как redirect () -> away ('http://example.com? Id = 2 );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...