上一主题下一主题
关键字
主题 : 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的位置。 &ApJ'uC  
,uKvE`H  
我的lar****el版本是4.2,下面是测试代码。 GPR`=]n& &  
@L<[38  
Route::get('post', function() { return 'w/out slash'; }); {sm={q  
Route::get('post/', function() { return 'with slash'; }); 3Gp4%UT&  
Route::get('post/', function() { return 'with slash'; }); ]Hd 0 Y%  
Route::get('post', function() { return 'w/out slash'; }); ){YPP!8cI  
以上两种配置,结果都如下,都是/post/ 301 跳到别的页面,/post页面正常。 4(aesZ8h  
zK-hNDFL{  
curl http://localhost/gitcafe/public/post }=;>T)QmMO  
with slash xD\Km>|i  
curl http://localhost/gitcafe/public/post/ Bd NuhV`0  
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> BXfaqYb;Q  
<html><head> 5&X  
<title>301 Moved Permanently</title> u\e#_*>  
</head><body> k@8#Byl|  
<h1>Moved Permanently</h1> " DlC vjc  
<p>The document has moved <a href="http://localhost/post">here</a>.</p> AVyZ#`,  
</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不知道,不过其他路由我都是后边加?的 ?&/9b)cS  
/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组件的行为我记得是: ^~bAixH^k  
q _:7uQ  
无论带结尾斜线与否,均视为同一个路由; FuFICF7+C  
带斜线的301跳转到不带斜线的(至少对GET如此); H]M[2C7#N  
同一个路由指定两次时,后边的覆盖前边的。 :<1PCX2  
以下是测****例与结果: Xc g+ SOB  
V r T0S  
Case 1 ,pdf$) XB  
Z[\nyj  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php 99b"WH^3$y  
22,24d21 e\*N Lj_(  
< }\W^$e-  
< Route::get('post/', function() { return 'with slash'; }); ^c){N-G  
< Route::get('post', function() { return 'w/out slash'; }); quq!Jswn  
NnY+=#j7 L  
$ curl http://test1.l5.invalid/post/ _o>?\:A  
这里Web server提示了301跳转到 http://test1.l5.invalid/post v.Q+4 k  
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq bHz H0v]:  
N_VWA.JHt  
$ curl http://test1.l5.invalid/post n3s   
w/out slash /86PqKU(P  
Case 2 pJ@->V_  
b X/%Q^Y  
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php  ` EVy  
22,24d21 M-C>I;a  
< l<s6Uu"  
< Route::get('post', function() { return 'w/out slash'; }); ,mt=)Ac  
< Route::get('post/', function() { return 'with slash'; }); ~eekv5  
f!cYLU1e@  
$ curl http://test1.l5.invalid/post/ <bh!wf6;  
这里Web server提示了301跳转到 http://test1.l5.invalid/post v%E!   
SF的前台渲染有误,结果见 http://pastebin.com/ZMh0smvq e:|Bn>*  
OX{2@+f#  
$ curl http://test1.l5.invalid/post z3yAb"1Hg  
with slash