Sha*_*ane 26 url root laravel-4
我准备好尖叫这有多难?我一直在努力.如果我有http://www.example.com/more/pages/page.php或类似内容,我希望能够获得www.example.com.
就这样.所以我可以随意使用它.如果在生产或开发中,这当然会改变,所以我想动态地确定它.
Request::root()
Run Code Online (Sandbox Code Playgroud)
返回http://www.example.com/more/pages/page.php
URL::to('/')
Run Code Online (Sandbox Code Playgroud)
返回http://www.example.com/more/pages/page.php
我怎么得到这个?为什么我这么做有这么多麻烦?
low*_*nds 40
更新时间(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'
}
Run Code Online (Sandbox Code Playgroud)
routes.php如果问题仍然存在,您可能需要仔细检查或发布更多代码(,控制器代码......).
另一种解决方案是简单地使用$_SERVER['SERVER_NAME'].
Sei*_*oan 30
您也可以测试以下任何一项:
Request::server ("SERVER_NAME")
Request::server ("HTTP_HOST")
Run Code Online (Sandbox Code Playgroud)
它似乎比做任何治疗更好
Request::root()
Run Code Online (Sandbox Code Playgroud)
行.
Mar*_*łek 15
在Laravel 5.1及更高版本中,您可以使用
request()->getHost();
Run Code Online (Sandbox Code Playgroud)
要么
request()->getHttpHost();
Run Code Online (Sandbox Code Playgroud)
(第二个将添加端口,如果它不是标准的)
kiv*_*ant 12
我的提示:
找到.env中的EXISTS:
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而且我不确定它是否适用于早期版本,但是如果有人在谷歌上搜索并在这里登陆它可能会在中间件处理函数中获得$ request参数:
$request->server->get('SERVER_NAME')
Run Code Online (Sandbox Code Playgroud)
在中间件句柄方法之外你可以通过辅助函数request()来访问它
request()->server->get('SERVER_NAME')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76832 次 |
| 最近记录: |