重定向页面(如果未引用)

Redirect Page If Not Referred

提问人:BadScooter1980 提问时间:10/8/2023 最后编辑:Ere MännistöBadScooter1980 更新时间:10/16/2023 访问量:38

问:

任何人都可以帮助解决WordPress中简单的重定向问题吗?

我有几个页面是注册过程的一部分,我想“隐藏”这些页面,除非作为该过程的一部分访问。

例如,除非访问者来自“/join/”页面,否则“/join/payment-setup/”页面需要无法访问 - 只需简单地重定向到“/join/”页面就足够了。

php wordpress 函数 重定向 参考

评论

0赞 Markus Zeller 10/8/2023
这回答了你的问题吗?检查PHP反向链接
1赞 Pippo 10/8/2023
检查(仅)引用者似乎是一个糟糕的解决方案。我建议您检查服务器存储中设置的一些条件(DB、会话、Redis...),如果不满足条件(例如,如果用户尚未在“加入”页面中确认某些内容),则重定向回来
0赞 Kaii 10/8/2023
检查(仅)引用者似乎是一个糟糕的解决方案,因为某些浏览器允许用户出于隐身原因禁用引用者信息。您的解决方案并不适合所有人。

答:

1赞 Ere Männistö 10/8/2023 #1

我不是 WordPress 专家,但通过快速浏览文档,我可能会混合使用 、 和 .sessionswp_get_referer()wp_redirect()

  1. 在页面顶部开始会话
session_start()
  1. 检查它是否与页面匹配。如果是这样,请保存一些会话状态以备后用。这应该在每个页面上进行检查,以确保它也被重置。请注意,使用此设置时,如果用户刷新页面中的页面,他们将失去访问权限。因此,您必须添加一些逻辑来处理这个问题。wp_get_referer/join/payment-setup
if (wp_get_referer() === home_url('/join/')) {
    $_SESSION['allowed'] = true;
} 
else {
    $_SESSION['allowed'] = false;
}
  1. 在“要控制访问”中,检查是否允许用户访问该访问,类似于在用户登录之前阻止访问。如果用户没有来自正确的页面,请使用代码将他们重定向到正确的页面并退出代码。pagewp-redirect
if (!isset($_SESSION['allowed']) || !$_SESSION['allowed']) {
    wp_redirect(home_url('/join/'));
    exit;
}