route obtener current url laravel-4 root

current - ¿Cómo obtener la url de la raíz del dominio en Laravel 4?



url route laravel (6)

Creo que puedes usar el asset(''/'')

Estoy listo para gritar, ¿qué tan difícil puede ser esto? He estado tratando durante demasiado tiempo. Si tengo http://www.example.com/more/pages/page.php o similar, quiero poder obtener www.example.com.

Eso es todo. Así que puedo usarlo como me plazca. Esto cambiará, por supuesto, si está en producción o desarrollo, así que quiero averiguarlo dinámicamente.

Request::root()

devuelve http://www.example.com/more/pages/page.php

URL::to(''/'')

devuelve http://www.example.com/more/pages/page.php

¿Cómo consigo esto? ¿Por qué estoy teniendo tantos problemas para hacer esto?


En Laravel 5.1 y posteriores puedes usar

request()->getHost();

o

request()->getHttpHost();

(el segundo agregará puerto si no es estándar)


Esto es para Laravel 5.1 y no estoy seguro de que funcione para versiones anteriores, pero si alguien busca en Google y aterriza aquí, podría ser útil en la función de manejo de middleware que obtiene el parámetro $ request:

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

fuera del método de manejo de middleware, puede acceder a él mediante una solicitud de función auxiliar ()

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


Mi consejo:

  1. ENCUENTRA SI EXISTE en .env:

    APP_URL=http://yourhost.dev

  2. REEMPLAZAR A (O AÑADIR)

    APP_DOMAIN=yourhost.dev

  3. ENCONTRAR en config / app.php:

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

  4. REEMPLAZAR A

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

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

  5. UTILIZAR:

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

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

  6. ¡Haz tu magia!


También puedes probar cualquiera de estos:

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

Parece mejor que hacer cualquier tratamiento de

Request::root()

Todo bien.


ACTUALIZACIÓN (2017-07-12)

Una mejor solución es usar Request::getHost()

Respuesta anterior:

Acabo de marcar y Request::root(); devuelve http://www.example.com en mi caso, sin importar en qué ruta me encuentre. Luego puede hacer lo siguiente para quitar la parte http:// :

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

Es posible que desee volver a verificar o publicar más código ( routes.php , código del controlador, ...) si el problema persiste.

Otra solución es simplemente usar $_SERVER[''SERVER_NAME''] .