Подтвердить что ты не робот

Как получить корневой URL-адрес домена в Laravel 4?

Я готов кричать, как сильно это может быть? Я слишком долго пытался. Если у меня http://www.example.com/more/pages/page.php или аналогичный, я хочу иметь возможность получить www.example.com.

Вот и все. Поэтому я могу использовать его, как мне заблагорассудится. Это, конечно, изменится, если на производстве или в разработке, поэтому я хочу установить его динамически.

Request::root()

возвращает http://www.example.com/more/pages/page.php

URL::to('/')

возвращает http://www.example.com/more/pages/page.php

Как мне это получить? Почему у меня так много проблем, чтобы сделать это?

4b9b3361

Ответ 1

Я только что проверил и Request::root(); возвращает http://www.example.com в моем случае, независимо от того, на каком маршруте я нахожусь. Затем вы можете сделать следующее, чтобы удалить часть http://:

if (starts_with(Request::root(), 'http://'))
{
    $domain = substr (Request::root(), 7); // $domain is now 'www.example.com'
}

Если проблема не исчезла, вы можете дважды проверить или отправить больше кода (routes.php, код контроллера,...).

Другим решением является просто использовать $_SERVER['SERVER_NAME'].

Ответ 2

Вы также можете протестировать любое из них:

Request::server ("SERVER_NAME")
Request::server ("HTTP_HOST")

Кажется лучше, чем делать какое-либо лечение

Request::root()

Хорошо.

Ответ 3

Мой намек:

  • НАЙТИ, ЕСЛИ EXISTS в .env:

    APP_URL=http://yourhost.dev

  • ЗАМЕНИТЬ (ИЛИ ДОБАВИТЬ)

    APP_DOMAIN=yourhost.dev

  • НАЙТИ в config/app.php:

    'url' => env('APP_URL'),

  • ЗАМЕНИТЕ

    'domain' => env('APP_DOMAIN'),

    'url' => 'http://' . env('APP_DOMAIN'),

  • Использование:

    Config::get('app.domain'); // yourhost.dev

    Config::get('app.url') // http://yourhost.dev

  • Сделайте свою магию!

Ответ 4

В Laravel 5.1 и более поздних версиях вы можете использовать

request()->getHost();

или

request()->getHttpHost();

(второй добавит порт, если он не стандартный)

Ответ 5

Это для Laravel 5.1, и я не уверен, что он работает для более ранних версий, но если кто-то ищет в Google и приземляется здесь, это может быть удобно в функции обработки промежуточного программного обеспечения, получает параметр $request:

$request->server->get('SERVER_NAME')

вне метода дескриптора промежуточного программного обеспечения вы можете получить к нему доступ с помощью вспомогательной функции request()

request()->server->get('SERVER_NAME')

Ответ 6

Я думаю, вы можете использовать asset('/')