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

Eso es todo. Así que la voy a usar como yo por favor. Por supuesto, esto cambia si en la producción o desarrollo, así que quiero conocer de forma dinámica.

Request::root()

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

URL::to('/')

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

¿Cómo puedo conseguir esto? ¿Por qué tengo tantos problemas para hacer esto??

  • Trate de Request::getHttpHost(), a partir de su pregunta, parece que es lo que necesitas.
  • Que, de hecho, parece funcionar igual de bien, gran consejo. ¿Dónde encontraste eso?
  • Request::getHost() también funciona.
InformationsquelleAutor Shane | 2014-07-28

6 Comentarios

  1. 40

    ACTUALIZACIÓN (2017-07-12)

    Una mejor solución es en realidad el uso de Request::getHost()

    Respuesta anterior:

    Acabo de comprobar y Request::root(); devolver http://www.example.com en mi caso, sin importar el camino que estoy. A continuación, puede hacer lo siguiente para quitar la http:// parte:

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

    Usted puede verificarlo o post más código (routes.php, controlador de código, …) si el problema persiste.

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

    • Yo no sé de qué se trata la cuestión. Ahora parece estar funcionando bien. Yo probando durante una hora. La única cosa que puedo pensar es en la vhost en apache en mi localhost no fue la correcta. He movido la carpeta pública y la no actualización de este. Esto puede realizarse de ella. Pero lo que describe es desafiante sucediendo. Yo volvía la dirección URL de la página actual. Me estaba volviendo loco…
    • $_SERVER[‘SERVER_NAME’] devuelve el nombre de host del servidor: «El nombre de host del servidor en virtud de la cual la corriente de secuencia de comandos se ejecuta. Si el script se ejecuta en un host virtual, este será el valor definido para el host virtual.» Esto no siempre será la dirección url que el usuario es, por ejemplo, si usted tiene los alias en su vhosts. Petición::root(); funciona bien en esta ocasión.
    • Es mejor usar una expresión regular, porque si alguna vez cambiar a https:// a continuación el código está roto.
    • Si usted está buscando para analizar una url, me gustaría recomendar la parse_url.
    • Este código se rompe si se utiliza con cualquier otro protocolo que no tiene exactamente 4 caracteres
    • No creo que esto debe ser aceptado respuesta. Hay un comentario por lowerends en la pregunta original que es mucho más limpio

  2. 30

    Usted también puede probar alguno de estos:

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

    Parece mejor que hacer algún tratamiento de

    Request::root()

    Todos los derechos.

  3. 15

    En Laravel 5.1 y más tarde puede utilizar

    request()->getHost();

    o

    request()->getHttpHost();

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

  4. 12

    Mi sugerencia:

    1. ENCONTRAR 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. USO:

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

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

    6. Hacer su magia!

    • P. S.: Usted libre de agregar las variables de entorno y usarlo de esta manera, por ejemplo: para la api de dominio para la cuenta de dominio para la documentación de ayuda de dominio, y cualesquiera otros. Pero, usted realmente no necesita agregar el desarrollo de los dominios .env (como APP_DEV_DOMAIN). Sólo tiene que utilizar otra (entorno de desarrollar.env, behat.env, control de calidad.env etc) con otros valores. (lo siento por ruenglish)
  5. 8

    Esto es para Laravel 5.1 y no estoy seguro de que funciona para versiones anteriores, pero si alguien busca en Google y tierras aquí puede ser útil en el middleware de la manija de la función recibe $parámetro de la petición:

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

    fuera de middleware de manejar método que se puede acceder a ella mediante la función de ayuda solicitud()

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

Dejar respuesta

Please enter your comment!
Please enter your name here