これがどれほど難しいかを叫ぶ準備はできていますか?私はあまりにも長い間試してきました。 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 を返します
どうすれば入手できますか?なぜこれを行うのに苦労していますか?
更新(2017-07-12)
より良い解決策は、実際にRequest::getHost()
を使用することです
前の回答:
私がチェックしたところ、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']
を使用することです。
次のいずれかをテストすることもできます。
Request::server ("SERVER_NAME")
Request::server ("HTTP_Host")
どんな治療をするよりも良いようです
Request::root()
大丈夫。
Laravel 5.1以降では使用できます
request()->getHost();
または
request()->getHttpHost();
(2番目のポートは、標準ポートではない場合、ポートを追加します)
私のヒント:
.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
魔法をかけてください!
これはLaravel 5.1であり、以前のバージョンで動作するかどうかはわかりませんが、誰かがGoogleで検索してここに着くと、ミドルウェアハンドル関数が$ requestパラメーターを取得できる場合があります。
$request->server->get('SERVER_NAME')
ミドルウェアハンドルメソッドの外では、ヘルパー関数request()でアクセスできます
request()->server->get('SERVER_NAME')