From 5aae98c22073eb39da80a0535d49eecf96106725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijus=20Plan=C4=8Di=C5=ABnas?= Date: Fri, 17 Feb 2017 12:31:56 +0200 Subject: [PATCH 1/2] Fix for non-set query and missing fragment --- qs_forward/plugin.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/qs_forward/plugin.php b/qs_forward/plugin.php index 12ed770..7bae25d 100644 --- a/qs_forward/plugin.php +++ b/qs_forward/plugin.php @@ -9,14 +9,14 @@ */ // Hook our custom function into the 'pre_redirect' event -yourls_add_filter('redirect', 'qs_forward_redirect' ); +yourls_add_filter('redirect_location', 'qs_forward_redirect' ); // Our custom function that will be triggered when the event occurs function qs_forward_redirect($url, $code) { $parsed_url = parse_url($url); parse_str($_SERVER['QUERY_STRING'], $query); - parse_str($parsed_url["query"], $url_query); + parse_str(isset($parsed_url["query"]) ? $parsed_url["query"] : null, $url_query); $a = array_merge($query, $url_query); $parsed_url["query"] = http_build_query($a); @@ -28,6 +28,10 @@ function qs_forward_redirect($url, $code) { if (isset($parsed_url["query"]) && /* fix by XL-Network. Thank you!*/$parsed_url["query"] != "") $new_url = "$new_url?".$parsed_url["query"]; + + if (isset($parsed_url["fragment"]) && $parsed_url["fragment"] != "") + $new_url = "$new_url#".$parsed_url["fragment"]; + return $new_url; } From 5de76f6287a16636c0681b24354668860bfe308d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijus=20Plan=C4=8Di=C5=ABnas?= Date: Fri, 17 Feb 2017 12:34:34 +0200 Subject: [PATCH 2/2] User and password fields --- qs_forward/plugin.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/qs_forward/plugin.php b/qs_forward/plugin.php index 7bae25d..70d5d70 100644 --- a/qs_forward/plugin.php +++ b/qs_forward/plugin.php @@ -21,10 +21,15 @@ function qs_forward_redirect($url, $code) { $a = array_merge($query, $url_query); $parsed_url["query"] = http_build_query($a); - $new_url = $parsed_url["scheme"]."://".$parsed_url["host"]; + $user = isset($parsed_url['user']) ? $parsed_url['user'] : ''; + $pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : ''; + $pass = ($user || $pass) ? "$pass@" : ''; + + $new_url = $parsed_url["scheme"]."://".$user.$pass.$parsed_url["host"]; if (isset($parsed_url["port"]) && $parsed_url["port"] != "") $new_url = $new_url.":".$parsed_url["port"]; - $new_url = $new_url.$parsed_url["path"]; + + $new_url = $new_url.$parsed_url["path"]; if (isset($parsed_url["query"]) && /* fix by XL-Network. Thank you!*/$parsed_url["query"] != "") $new_url = "$new_url?".$parsed_url["query"];