webman的多應用下面的route如何配置呢,我在config/route下面配置的路由都不能訪問
webman 直接就支持多應用,不用配置路由。
默認支持 /應用/控制器/方法
比如 /admin/user/login 這樣的默認路由,
主要是我配置了短url,就是我的域名在nginx那邊有映射過了,導致現(xiàn)在在route里面配置的路由都不能使用
if ($host = 'www.shop.com') {
rewrite ^/(.*)$ /home/$1 last;
}
if ($host = 'blog.shop.com') {
rewrite ^/(.*)$ /blog/$1 last;
}
# 根據(jù)域名重寫url
if ($host = 'admin.shop.com') {
rewrite ^/(.*)$ /admin/$1 last;
}
現(xiàn)在我在config里面的route里面配置的
Route::any('/test', function ($request) {
return response('test');
});
像這樣的就讀不了
你重定向到二級目錄了,當然訪問不了。
比如訪問的是 blog.shop.com/test
,根據(jù)nginx配置實際訪問的是blog.shop.com/blog/test
,所以路由配置感覺應該是
Route::any('/blog/test', function ($request) {
return response('test');
});
才對啊
這個剛才我就在config/route里面配置過了也是/home/test這個,也是報404,然后我才改的/test,現(xiàn)在不管訪問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();
});
我現(xiàn)在把配置文件里面的配置關掉
'enable' => false, // 是否開啟插件
現(xiàn)在是可以了,但是還有一個問題就是這個route,
如果我的手機端有一個應用是m,pc端也有一個應用是home,
現(xiàn)在我在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里面重寫一下規(guī)則,就可以實現(xiàn)手機端訪問www.shop.com的時候重定向到手機端的m.shop.com
如果設置是手機,訪問的是www.shop.com電腦端口的時候,會重定向到手機端口。搞了大半天終于解決了。
大兄弟,謝謝啊