上一主题下一主题
关键字
主题 : laravel 路由怎样写,才能实现 /post 和 /post/ 指向一个位置啊?
级别: 北风技术菜鸟

UID: 470406
精华: 0
发帖: 303
威望: 1471 点
学点: 738 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-06-27
最后登录: 2015-04-06
楼主  发表于: 2015-04-06 18:12||

laravel 路由怎样写,才能实现 /post 和 /post/ 指向一个位置啊?

现在,/post/总会跳到别的页面,而不是跳到/post的位置。 .O4=[wE!U  
o, qBMo^.  
我的lar****el版本是4.2,下面是测试代码。 ~qW"v^<  
+m6acu)N.  
Route::get('post', function() { return 'w/out slash'; }); +Kg3qS"  
Route::get('post/', function() { return 'with slash'; }); %t-}dC&  
Route::get('post/', function() { return 'with slash'; }); *5'l"YQ@1  
Route::get('post', function() { return 'w/out slash'; }); kh*td(pfP9  
以上两种配置,结果都如下,都是/post/ 301 跳到别的页面,/post页面正常。 4vPKDd  
nqujT8  
curl http://localhost/gitcafe/public/post h6gtO$A|p=  
with slash ^t)alNGos  
curl http://localhost/gitcafe/public/post/ 5NYYrA8,^  
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> C'0=eel[  
<html><head> {[FJkP2l  
<title>301 Moved Permanently</title> ML_[Z_Q<z  
</head><body> .*w3ryQ  
<h1>Moved Permanently</h1> 2W`<P2IA  
<p>The document has moved <a href="http://localhost/post">here</a>.</p> :sb+jk  
</body></html>
此帖悬赏中(剩余时间:已结束)...
最佳答案: 2 学点
热心助人剩余点数: 1 学点
级别: 北风资深工程师

UID: 472685
精华: 0
发帖: 1930
威望: 1946 点
学点: 3280 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-07-10
最后登录: 2015-04-08
沙发(1楼)  发表于: 2015-04-06 18:13||

Lar****el不知道,不过其他路由我都是后边加?的 "B"Yfg[  
/post/?
级别: 北风资深工程师

UID: 472681
精华: 0
发帖: 1791
威望: 1815 点
学点: 2095 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-07-10
最后登录: 2015-04-07
板凳(2楼)  发表于: 2015-04-06 18:13||

因为 /post/和/post 是两个路由路径, 要让他俩指向一个位置,分配配置他俩,都指向同一个位置。
级别: 北风资深评论员


UID: 470398
精华: 0
发帖: 3024
威望: 3862 点
学点: 8642 点
贡献: 90 点
好评: 0 点
学币: 112 个
注册时间: 2014-06-27
最后登录: 2015-04-07
地板(3楼)  发表于: 2015-04-06 18:13||

会吗?L5 Route组件的行为我记得是: p;P"mp\'  
2Gw2k8g&  
无论带结尾斜线与否,均视为同一个路由; }#0i1]n$D  
带斜线的301跳转到不带斜线的(至少对GET如此); Tgf#I*(^]  
同一个路由指定两次时,后边的覆盖前边的。 YoT< ]'  
以下是测****例与结果: gYtv`O  
,?OWwm&J  
Case 1 8~~*/oCoJt  
V5ySOgzw,  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php a___SYl 'K  
22,24d21 3t*e|Ih&j5  
< !b=jD;<  
< Route::get('post/', function() { return 'with slash'; }); O>h,u[0  
< Route::get('post', function() { return 'w/out slash'; }); TVVr<r  
b! h*I>`  
$ curl http://test1.l5.invalid/post/ (iT?uMRz  
这里Web server提示了301跳转到 http://test1.l5.invalid/post ]I+"";oQGB  
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq S-4C >gM  
h W< fu  
$ curl http://test1.l5.invalid/post x$6` k  
w/out slash FK^JC s^  
Case 2 p H5iv>H  
|\ ZsoA  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php qId-v =L  
22,24d21 T[z}^"  
< \h#,qTE  
< Route::get('post', function() { return 'w/out slash'; }); (D?%(f  
< Route::get('post/', function() { return 'with slash'; }); z`?{5v -Qs  
aT]G&bR?  
$ curl http://test1.l5.invalid/post/ sp2"c"_+  
这里Web server提示了301跳转到 http://test1.l5.invalid/post &7}\mnhB  
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq 6<uJ}3  
^"U-\cx  
$ curl http://test1.l5.invalid/post w`N|e0G@  
with slash