我想要这样的路线:
john-doe.mysite.local
john-another-doe.mysite.local
然后将子域名传递给某个控制器@方法并显示用户配置文件。
我正在使用Laravel Homestead。
这是我本地计算机上的/etc/hosts
文件:
....
192.168.10.10 mysite.local
192.168.10.10 *.mysite.local
....
在我的虚拟机上/etc/nginx/sites-available/mysite.local
文件
server {
listen 80;
server_name mysite.local *.mysite.local;
root "/home/vagrant/laravel-projects/mysite.com/public";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
....
如果您还有其他需求,请询问。
主域mysite.local
正常工作。
我尝试关注documentation并将其添加到我的routes.php
文件中:
Route::group(['domain' => '{element}.mysite.local'], function() {
Route::get('/', function ($element) {
dd($element);
});
});
但是如果我去任何子域somedomain.mysite.local
我找不到服务器。
在我看来,问题是我甚至没有通过子域名到达Laravel应用程序。
感谢任何帮助。
我找到了this question,并尝试在我的.local
和.dev
文件中将/etc/hosts
更改为mysite.local
,但它不起作用。我也尝试将mysite.local
更改为mysite.dev
,但它也无效。
我无法弄清楚我在这里失踪了什么。
更新
如果我将test.mysite.local
添加到我的/etc/hosts
文件中,我会在浏览器中获得相同的输出,就像我要浏览mysite.local
一样。
....
192.168.10.10 mysite.local
192.168.10.10 test.mysite.local
192.168.10.10 *.mysite.local
....
更新虚拟机上的mysite.local
:
...
server_name mysite.local test.mysite.local *.mysite.local;
...
我尝试添加另一条路线routes.php
:
Route::group(['domain' => 'test.mysite.local'], function() {
Route::get('/', function () {
dd('you are at test subdomain');
});
});
看它是否有效,但它没有,我仍然得到相同的输出,好像我要导航到mysite.local
另一个更新:
/etc/hosts/
不支持通配符,所以目前我使用的是静态子域名,并且稍后会弄清楚如何动态子域名。
同时加上
Route::group(['domain' => '{element}.mysite.local'], function() {
Route::get('/', function ($element) {
dd($element);
});
});
在顶部或您的routes.php
文件。
目前我正在尝试将静态子域重定向到特定的控制器@方法。随着我的进步,这会更新。
更新 - 静态域现在正在工作:
新路线:
Route::group(['domain' => '{element}.mysite.local'], function() {
Route::get('{path}', 'ElementController@single')->where('path', '.*');
});
ElementController.php
public function single($element)
{
//return view with information about my element
if ( $element = Element::where('slug', $element)->first() )
{
return view('elements.single', compact('element'));
}
//redirect to mysite.local if slug doesn't exist
return redirect(Config::get('app.url')); // points to config/app.php and find `url` parameter which should be defined in your `.env` file
}
TODO:
slug.mysite.local/sadsadas
工作并运行上面的single
方法,我
如果它会重定向到slug.mysite.local
答案 0 :(得分:0)
也许这个? 主机中的168.168.10.10 ......似乎必须是192.168.10.10