首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在无脂框架中重定向到以前的路由。

在无脂框架中重定向到以前的路由。
EN

Stack Overflow用户
提问于 2018-04-02 09:00:13
回答 1查看 1.3K关注 0票数 1

在无脂框架中,有什么方法可以重定向到以前的路线吗?

类似于拉拉中的redirect->back()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 11:49:58

不,没有。如果您查看Laravel源代码,back()函数将重定向到Referer header中包含的URL,或者重定向到会话中存储的最后一个URL。

这取决于您决定选择哪种策略,但这两种策略都可以很容易地用F3实现。

1)引用报头

代码语言:javascript
运行
复制
$f3->reroute($f3->get('SERVER.HTTP_REFERER'))

优点:易于实现。

缺点:如果没有设置标题,它将重定向到当前页面。如果标题设置为不同的域,它将重定向到另一个网站。

为了避免重定向到另一个域,需要检查引用域是否与网站域匹配:

代码语言:javascript
运行
复制
$referer=$f3->get('SERVER.HTTP_REFERER');
if (preg_match('/^https?:\/\/'.preg_quote($f3->HOST,'/').'\//',$referer)) {
  // The referer URL belongs to the website domain
  $f3->reroute($referer);
} else {
  // The referer URL belongs to another domain (or is empty)
  // take some action, for example reroute to current page:
  $f3->reroute();
  // or reroute to homepage
  $f3->reroute('/');
}

2)会话URL

代码语言:javascript
运行
复制
// end of index.php
$f3->run();
$f3->set('SESSION.previousUrl',$f3->REALM);

// redirect code:
$f3->reroute($f3->get('SESSION.previousUrl'));

优点:不存在重定向到不同领域的风险

缺点:强制使用会话。如果您运行的后台办公或应用程序已经使用会话,这是好的,但如果您运行一个前端网站,它将防止页面在客户端缓存。

3)查询字符串

还有第三种选择,在某些特定情况下可以工作:在查询字符串中传递原始URL。

代码语言:javascript
运行
复制
<a href="/target?origin=/origin">Click here></a>
代码语言:javascript
运行
复制
// redirect code:
$f3->reroute($f3->get('GET.origin'));
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49608272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档