因此,有些人直接访问我的网站(不是通过我使用Voluum获得的跟踪链接),因此他们无法点击链接,我无法将其视为我的统计数据的一部分。
如何将没有/?voluumdata=BASE64...
网址参数的用户重定向到跟踪的网址,并为每篇博文发布不同的重定向?
我正在测试并寻找一个插件/ .htaccess技巧几个小时,但似乎没有任何帮助。
编辑:我找到了一个解决方案,我确信它会起作用,但出于某种原因它没有:
[insert_php]
if(empty($_GET['voluumdata']))
{
header('Location: REDIRECT_URL');
exit;
}
[/insert_php]
也尝试过:
[insert_php]
if(!isset($_GET['voluumdata']))
{
header('Location: REDIRECT_URL');
exit;
}
[/insert_php]
两者都打破了页面加载过程。
答案 0 :(得分:0)
不幸的是,我无法理解您在问题中输入的代码的目的是什么。我的意思是你不清楚使用标签[insert_php]
的原因。
您的问题的解决方案可以是以下内容。
function redirect_direct_access( ) {
// You may use the code:
//
// global $wp_query
//
// in order to determine in which pages you should run your
// redirection code. If you only check for the token existence
// then you will be faced with redirection loop. I don't explain in
// depth how to use the $wp_query as it is not part of your question
// but you always have the opportunity to check what is the contents
// of this variable using the code:
//
// echo "<pre>";
// print_r( $wp_query );
// echo "</pre>";
//
// This way you will be able to build your specific if statement
// for the page you like to test.
if (
! isset( $_GET[ 'voluumdata' ] ) ||
empty( $_GET[ 'voluumdata' ] )
) {
wp_redirect( home_url( '/page/to/redirect/' ) );
exit();
}
}
add_action( 'template_redirect', 'redirect_direct_access' );
您可以在WordPress文档中找到与template_redirect挂钩相关的更多信息。
答案 1 :(得分:0)
万一有人会遇到同样的问题,@ Merinoos Nikos给出了一个半答案,我把它掌握到了这个:
function redirect_direct_access( ) {
$post_id = get_the_ID();
if (
$post_id == POST_ID &&
!isset( $_GET[ 'voluumdata' ] )
) {
wp_redirect( 'REDIRECT_URL' );
exit();
}
if (
$post_id == POST_ID &&
!isset( $_GET[ 'voluumdata' ] )
) {
wp_redirect( 'REDIRECT_URL' );
exit();
}
}
add_action( 'template_redirect', 'redirect_direct_access' );