Created
May 31, 2022 06:53
-
-
Save TedAvery/15b87b7c1c1d58f646371c1d692eb836 to your computer and use it in GitHub Desktop.
Yoast affiliate redirect for Affilimate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
location /go/ { | |
rewrite ^/go/(.*)$ /go/index.php?id=$1&args=$args last; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$id = isset( $_GET['id'] ) ? rtrim( trim( $_GET['id'] ), '/' ) : 'default'; | |
$args = isset( $_GET['args'] ) ? rtrim( trim( $_GET['args'] ), '/' ) : ''; | |
$f = fopen( 'redirects.txt', 'r' ); | |
$urls = array(); | |
// The file didn't open correctly. | |
if ( !$f ) { | |
echo 'Make sure you create your redirects.txt file and that it\'s readable by the redirect script.'; | |
die; | |
} | |
// Read the input file and parse it into an array | |
while( $data = fgetcsv( $f ) ) { | |
if ( !isset( $data[0] ) || !isset( $data[1] ) ) | |
continue; | |
$key = trim( $data[0] ); | |
$val = trim( $data[1] ); | |
$urls[ $key ] = $val; | |
} | |
// Check if the given ID is set, if it is, set the URL to that, if not, default | |
$url = ( isset( $urls[ $id ] ) ) ? $urls[ $id ] : ( isset( $urls[ 'default' ] ) ? $urls[ 'default' ] : false ); | |
// check for querystring | |
if ($args) { | |
// if this is a Partnerize link, append as URL path, otherwise pass onto link | |
// regex test: https://www.phpliveregex.com/p/EVI | |
preg_match('/https:\/\/prf.hn\/click\/camref:(\w*)/', $url, $ph_url_match); | |
if ($ph_url_match) { | |
$url = $ph_url_match[0].'/'.str_replace('=',':',$args).preg_split('/https:\/\/prf.hn\/click\/camref:(\w*)/', $url)[1]; | |
} else { | |
$url .= ( strpos($url, '?') ? '&' : '?' ).$args; | |
} | |
} | |
if ( $url ) { | |
header( "X-Robots-Tag: noindex, nofollow", true ); | |
header( "Location: " . $url, 302 ); | |
die; | |
} else { | |
echo '<p>Make sure your redirects.txt file contains a default value, syntax:</p> | |
<pre>default,http://example.com</pre> | |
<p>Where you should replace example.com with your domain.</p>'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment