如何使用引用检查将重定向放在 php 模板前面?
How to put a redirect in front of a php template with a referer check?
我的 (wordpress) 子主题文件夹中有一个模板,用于我创建的自定义 post 类型。它看起来像这样:
<head>
…
<style>
…
</style>
<script>
…
</script>
</head>
<header>
…
</header>
<?php
…
?>
<div id="content">
<?php xx_page_header($post->ID); ?>
…
</div>
<?php get_footer(); ?>
这正是它的结构。我这么说是因为我是 php 初学者,如果有人愿意帮助我,我最需要 exact 信息 where 正是为了放置代码片段(我猜最终看起来会很简单而且很小)。
我有 4 个页面基于此模板页面。他们都运作良好。
下面是我要补充的内容:
页面依次包含输入表单等,并通过传递表单进行点击,有点像过滤过程。
我怎样才能在模板前面放一个referer检查?这样页面就可以继续正常工作,但是如果有人复制其中一个 link 并将其粘贴到另一个浏览器 window,他将始终被重定向到 first 的页面,而不是看到实际 link.
的页面
我已经尽我所能进行了一些研究,并找到了一些我想使用的作品。至于:
1) referer部分:
<?php
$ref=getenv("HTTP_REFERER");
$url='url_redirect';
if($ref!='referer_url'){
header('Location: '.$url);
}
?>
2) 一个正则表达式,使其适用于所有使用该模板的页面:
ref.match(/^http?:\/\/([^\/]+\.)?mywebpage\.com(\/|$)/i)
假设 (filtering) 起始页是:www.mywebpage.com/startpage/
我如何组合这些片段以及将它们放在哪里(我猜是在模板的开头)?
我想避免使用 cookie。 (使用引用者)
从技术上讲,您可以执行类似于以下代码的操作。起始页之后的每个页面都必须具有唯一的 url 和在每个页面上传递的令牌。您需要将此代码放在模板的最顶部。
类似的东西:
<?php
$url='url_redirect';
if((is_page('template2') || is_page('template3') || is_page('template4')) && $_POST['token'] == '') {
header('Location: '.$url);
}
?>
我的 (wordpress) 子主题文件夹中有一个模板,用于我创建的自定义 post 类型。它看起来像这样:
<head>
…
<style>
…
</style>
<script>
…
</script>
</head>
<header>
…
</header>
<?php
…
?>
<div id="content">
<?php xx_page_header($post->ID); ?>
…
</div>
<?php get_footer(); ?>
这正是它的结构。我这么说是因为我是 php 初学者,如果有人愿意帮助我,我最需要 exact 信息 where 正是为了放置代码片段(我猜最终看起来会很简单而且很小)。
我有 4 个页面基于此模板页面。他们都运作良好。
下面是我要补充的内容:
页面依次包含输入表单等,并通过传递表单进行点击,有点像过滤过程。
我怎样才能在模板前面放一个referer检查?这样页面就可以继续正常工作,但是如果有人复制其中一个 link 并将其粘贴到另一个浏览器 window,他将始终被重定向到 first 的页面,而不是看到实际 link.
的页面我已经尽我所能进行了一些研究,并找到了一些我想使用的作品。至于:
1) referer部分:
<?php
$ref=getenv("HTTP_REFERER");
$url='url_redirect';
if($ref!='referer_url'){
header('Location: '.$url);
}
?>
2) 一个正则表达式,使其适用于所有使用该模板的页面:
ref.match(/^http?:\/\/([^\/]+\.)?mywebpage\.com(\/|$)/i)
假设 (filtering) 起始页是:www.mywebpage.com/startpage/
我如何组合这些片段以及将它们放在哪里(我猜是在模板的开头)?
我想避免使用 cookie。 (使用引用者)
从技术上讲,您可以执行类似于以下代码的操作。起始页之后的每个页面都必须具有唯一的 url 和在每个页面上传递的令牌。您需要将此代码放在模板的最顶部。
类似的东西:
<?php
$url='url_redirect';
if((is_page('template2') || is_page('template3') || is_page('template4')) && $_POST['token'] == '') {
header('Location: '.$url);
}
?>