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:
ENCUENTRA SI EXISTE en .env:
APP_URL=http://yourhost.dev
REEMPLAZAR A (O AÑADIR)
APP_DOMAIN=yourhost.dev
ENCONTRAR en config / app.php:
''url'' => env(''APP_URL''),
REEMPLAZAR A
''domain'' => env(''APP_DOMAIN''),
''url'' => ''http://'' . env(''APP_DOMAIN''),
UTILIZAR:
Config::get(''app.domain''); // yourhost.dev
Config::get(''app.url'') // http://yourhost.dev
¡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'']
.