webman的多应用下面的route如何配置呢,我在config/route下面配置的路由都不能访问
webman 直接就支持多应用,不用配置路由。 默认支持 /应用/控制器/方法 比如 /admin/user/login 这样的默认路由,
/应用/控制器/方法
主要是我配置了短url,就是我的域名在nginx那边有映射过了,导致现在在route里面配置的路由都不能使用 if ($host = 'www.shop.com') { rewrite ^/(.*)$ /home/$1 last; }
if ($host = 'blog.shop.com') { rewrite ^/(.*)$ /blog/$1 last; } # 根据域名重写url if ($host = 'admin.shop.com') { rewrite ^/(.*)$ /admin/$1 last; }
现在我在config里面的route里面配置的 Route::any('/test', function ($request) { return response('test'); }); 像这样的就读不了
比如我想www.shop.com/test,就可以访问上面配置的那样的闭包的,现在访问都是404
你重定向到二级目录了,当然访问不了。 比如访问的是 blog.shop.com/test ,根据nginx配置实际访问的是blog.shop.com/blog/test,所以路由配置感觉应该是
blog.shop.com/test
blog.shop.com/blog/test
Route::any('/blog/test', function ($request) { return response('test'); });
才对啊
这个刚才我就在config/route里面配置过了也是/home/test这个,也是报404,然后我才改的/test,现在不管访问www.shop.com/test还是www.shop.com/home/test都是404,头大啊
confit/route.php 里加一个fallback,访问看下实际的请求域名和路径
Route::fallback(function(Request $request){ return $request->host().$request->path(); });
www.shop.com/home/test, 返回的是这个,但是我在前面设置了,就是不走前面那个路由,实在是没有办法了 use Webman\Route;
Route::any('/home/test',function ($request){ return 'hello test 18'; });
Route::fallback(function($request){ return $request->host().$request->path(); });
nginx不做重定向试下是否正常
我现在把配置文件里面的配置关掉 'enable' => false, // 是否开启插件 现在是可以了,但是还有一个问题就是这个route, 如果我的手机端有一个应用是m,pc端也有一个应用是home, 现在我在config/route里面配置的都是在homo端口生效,如何指定某个应用生效
终于都解决了,还是要在route里面把应用名称也带上 Route::any('/home/test',function ($request){ return 'hello test 18'; });
Route::any('/mobile/test',function ($request){ return 'hello test 20'; });
Route::fallback(function($request){ return $request->host().$request->path(); }); 这样访问www.shop.com的时候返回 hello test 18 访问m.shop.com的时候返回 hello test 20 还有一个配置就是在plugin/webman/domain/app.php这个配置文件里面的 enable要设置为false 然后在nginx里面重写一下规则,就可以实现手机端访问www.shop.com的时候重定向到手机端的m.shop.com 如果设置是手机,访问的是www.shop.com电脑端口的时候,会重定向到手机端口。搞了大半天终于解决了。 大兄弟,谢谢啊
webman 直接就支持多应用,不用配置路由。
默认支持
/应用/控制器/方法
比如 /admin/user/login 这样的默认路由,主要是我配置了短url,就是我的域名在nginx那边有映射过了,导致现在在route里面配置的路由都不能使用
if ($host = 'www.shop.com') {
rewrite ^/(.*)$ /home/$1 last;
}
根据域名重写url
现在我在config里面的route里面配置的
Route::any('/test', function ($request) {
return response('test');
});
像这样的就读不了
比如我想www.shop.com/test,就可以访问上面配置的那样的闭包的,现在访问都是404
你重定向到二级目录了,当然访问不了。
比如访问的是
blog.shop.com/test
,根据nginx配置实际访问的是blog.shop.com/blog/test
,所以路由配置感觉应该是才对啊
这个刚才我就在config/route里面配置过了也是/home/test这个,也是报404,然后我才改的/test,现在不管访问www.shop.com/test还是www.shop.com/home/test都是404,头大啊
confit/route.php 里加一个fallback,访问看下实际的请求域名和路径
www.shop.com/home/test, 返回的是这个,但是我在前面设置了,就是不走前面那个路由,实在是没有办法了
use Webman\Route;
Route::any('/home/test',function ($request){
return 'hello test 18';
});
Route::fallback(function($request){
return $request->host().$request->path();
});
nginx不做重定向试下是否正常
我现在把配置文件里面的配置关掉
'enable' => false, // 是否开启插件
现在是可以了,但是还有一个问题就是这个route,
如果我的手机端有一个应用是m,pc端也有一个应用是home,
现在我在config/route里面配置的都是在homo端口生效,如何指定某个应用生效
终于都解决了,还是要在route里面把应用名称也带上
Route::any('/home/test',function ($request){
return 'hello test 18';
});
Route::any('/mobile/test',function ($request){
return 'hello test 20';
});
Route::fallback(function($request){
return $request->host().$request->path();
});
这样访问www.shop.com的时候返回 hello test 18
访问m.shop.com的时候返回 hello test 20
还有一个配置就是在plugin/webman/domain/app.php这个配置文件里面的
enable要设置为false
然后在nginx里面重写一下规则,就可以实现手机端访问www.shop.com的时候重定向到手机端的m.shop.com
如果设置是手机,访问的是www.shop.com电脑端口的时候,会重定向到手机端口。搞了大半天终于解决了。
大兄弟,谢谢啊