我试图防止直接访问网页,我只希望访问者在被特定URL引用后才能查看该页面。
例如,访问者尝试查看https://example.com/restricted网页,如果访问者并非来自https://example.com/redirect/ ***,则应将访问者重定向到首页。
为什么在引荐来源网址中使用星号?这是一个动态(?)URL。我的意思是,引荐来源网址可以是https://example.com/redirect/514,但也可以是https://example.com/redirect/58613。
因此,基本上,我需要在URL末尾添加一个“通配符”,而不是末尾的数字。 https://example.com/redirect/WILDCARDHERE? (我就是这么想的)
注意:我将在我的Wordpress函数文件中使用此代码,我尝试了Wordpress堆栈溢出,但是没有得到任何响应,这就是为什么我在这里尝试运气的原因。
我尝试了几件事,但是我一无所知。
add_action('template_redirect', function() {
if ( ! is_page(464)) {
return;
}
if (wp_get_referer() == 'https://example.com/redirect/') {
return;
}
wp_redirect( get_home_url() );
exit;
})
希望有人可以为我提供正确的价值!
答案 0 :(得分:1)
您可以使用strpos函数来检查引荐来源网址是否以您的域或重定向关键字开头。 用法示例
$referer = wp_get_referer();
if ($referrer !== false && strpos($referer, "domain") === 0) {
return;
}