laravel 路由如何写,才能实现 /post 和 /post/ 指向一个位置?
程序员文章站
2022-04-11 20:36:23
...
现在,/post/总会跳到别的页面,而不是跳到/post的位置。
我的laravel版本是4.2,下面是测试代码。
php
Route::get('post', function() { return 'w/out slash'; }); Route::get('post/', function() { return 'with slash'; });
php
Route::get('post/', function() { return 'with slash'; }); Route::get('post', function() { return 'w/out slash'; });
以上两种配置,结果都如下,都是/post/ 301 跳到别的页面,/post页面正常。
curl http://localhost/gitcafe/public/post
with slash
curl http://localhost/gitcafe/public/post/
301 Moved Permanently
Moved Permanently
The document has moved here.
回复内容:
现在,/post/总会跳到别的页面,而不是跳到/post的位置。
我的laravel版本是4.2,下面是测试代码。
php
Route::get('post', function() { return 'w/out slash'; }); Route::get('post/', function() { return 'with slash'; });
php
Route::get('post/', function() { return 'with slash'; }); Route::get('post', function() { return 'w/out slash'; });
以上两种配置,结果都如下,都是/post/ 301 跳到别的页面,/post页面正常。
curl http://localhost/gitcafe/public/post
with slash
curl http://localhost/gitcafe/public/post/
301 Moved Permanently
Moved Permanently
The document has moved here.
http://*.com/questions/22063520/laravel-slash-after-url-re...
会吗?L5 Route
组件的行为我记得是:
- 无论带结尾斜线与否,均视为同一个路由;
- 带斜线的301跳转到不带斜线的(至少对
GET
如此); - 同一个路由指定两次时,后边的覆盖前边的。
以下是测试用例与结果:
Case 1
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php
22,24d21
Case 2
$ diff my_l5_app/app/Http/routes.php l5_fresh/app/Http/routes.php
22,24d21
因为 /post/和/post 是两个路由路径, 要让他俩指向一个位置,分配配置他俩,都指向同一个位置。
Laravel不知道,不过其他路由我都是后边加?的
/post/?