Je suis prêt à crier à quel point cela peut être difficile? J'essaye depuis trop longtemps. Si j'ai http://www.example.com/more/pages/page.php ou similaire, je veux pouvoir obtenir www.example.com.
C'est tout. Je peux donc l'utiliser à ma guise. Bien sûr, cela changera en production ou en développement, donc je veux le vérifier dynamiquement.
Request::root()
renvoie http://www.example.com/more/pages/page.php
URL::to('/')
renvoie http://www.example.com/more/pages/page.php
Comment est-ce que j'obtiens ceci? Pourquoi ai-je tant de mal à faire ça ??
MISE À JOUR (2017-07-12)
Une meilleure solution consiste à utiliser Request::getHost()
Réponse précédente:
Je viens de vérifier et Request::root();
retourne http://www.example.com
dans mon cas, quelle que soit la voie sur laquelle je suis. Vous pouvez ensuite procéder comme suit pour supprimer le http://
partie:
if (starts_with(Request::root(), 'http://'))
{
$domain = substr (Request::root(), 7); // $domain is now 'www.example.com'
}
Vous voudrez peut-être revérifier ou publier plus de code (routes.php
, code contrôleur, ...) si le problème persiste.
Une autre solution consiste à simplement utiliser $_SERVER['SERVER_NAME']
.
Vous pouvez également tester l'un de ces éléments:
Request::server ("SERVER_NAME")
Request::server ("HTTP_Host")
Il semble préférable de faire un traitement
Request::root()
D'accord.
Dans Laravel 5.1 et versions ultérieures, vous pouvez utiliser
request()->getHost();
ou
request()->getHttpHost();
(le second ajoutera un port s'il n'est pas standard)
Mon indice:
TROUVEZ SI EXISTE en .env:
APP_URL=http://yourhost.dev
REMPLACER (OU AJOUTER)
APP_DOMAIN=yourhost.dev
TROUVEZ dans config/app.php:
'url' => env('APP_URL'),
REMPLACER
'domain' => env('APP_DOMAIN'),
'url' => 'http://' . env('APP_DOMAIN'),
UTILISATION:
Config::get('app.domain'); // yourhost.dev
Config::get('app.url') // http://yourhost.dev
Faites votre magie!
C'est pour Laravel 5.1 et je ne suis pas sûr que cela fonctionne pour les versions antérieures mais si quelqu'un recherche sur Google et atterrit ici, cela pourrait être pratique dans la fonction de gestion du middleware obtient le paramètre $ request:
$request->server->get('SERVER_NAME')
en dehors de la méthode de gestion du middleware, vous pouvez y accéder par une demande de fonction d'assistance ()
request()->server->get('SERVER_NAME')