上一主题下一主题
关键字
主题 : 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的位置。 `#wEa'v6  
V5i}^%QSs  
我的lar****el版本是4.2,下面是测试代码。 { Ie~MW  
z^jmf_  
Route::get('post', function() { return 'w/out slash'; }); cruBJZr*  
Route::get('post/', function() { return 'with slash'; }); j@^zK!mO  
Route::get('post/', function() { return 'with slash'; }); >HRNB&]LdP  
Route::get('post', function() { return 'w/out slash'; }); TJZ/lJU  
以上两种配置,结果都如下,都是/post/ 301 跳到别的页面,/post页面正常。 VzIZT{  
eThFRU3 F  
curl http://localhost/gitcafe/public/post []aw;\7}Y  
with slash f~PS'I_r  
curl http://localhost/gitcafe/public/post/ Tx]p4wY:D  
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> Ge=^q.  
<html><head> 6R^32VeK($  
<title>301 Moved Permanently</title> rx 74v!  
</head><body> 0l& '`  
<h1>Moved Permanently</h1> 4o;;'P   
<p>The document has moved <a href="http://localhost/post">here</a>.</p> %3"3V1  
</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不知道,不过其他路由我都是后边加?的 *CTlOy  
/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组件的行为我记得是: )4&cph';  
;vIrGZV<  
无论带结尾斜线与否,均视为同一个路由; d`F&aC  
带斜线的301跳转到不带斜线的(至少对GET如此); `+uhy ,  
同一个路由指定两次时,后边的覆盖前边的。 y>aZXa  
以下是测****例与结果: pbU!dOU~e  
w.0qp)}  
Case 1 '60 L~`K  
sxt-Vs7+6  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php V,G|k!!  
22,24d21 ;]pJj6J&v  
< ~SnSEhE  
< Route::get('post/', function() { return 'with slash'; }); PZ*pQ=`  
< Route::get('post', function() { return 'w/out slash'; }); %b "\bHH  
smry2*g  
$ curl http://test1.l5.invalid/post/ v_nj$1dY6  
这里Web server提示了301跳转到 http://test1.l5.invalid/post IzpZwx^3''  
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq /<]{KI  
T16{_  
$ curl http://test1.l5.invalid/post Zib)P&  
w/out slash l'TWkQ-  
Case 2 -]t,E,(!  
~>+]% FPv  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php 4A2?Uhp y  
22,24d21 >b]S3[Q(  
< d{E}6)1=  
< Route::get('post', function() { return 'w/out slash'; }); <Ce2r"U1e  
< Route::get('post/', function() { return 'with slash'; }); 4'LB7}WG  
P`e!Z:  
$ curl http://test1.l5.invalid/post/ >J>b>SU=-  
这里Web server提示了301跳转到 http://test1.l5.invalid/post mljh|[  
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq fOMvj%T@2  
]._LLSzWhg  
$ curl http://test1.l5.invalid/post Q J7L7S  
with slash