CCCPaste

ignore_query

--- includes/common-functions.php	(revision 3522779)
+++ includes/common-functions.php	(working copy)
@@ -105,11 +105,14 @@
 /**
  * Do two URLs point at the same location on a web site?
  *
- * Preps URL, if string
+ * Preps URL, if string. Argument order matters: when the expected URL ($url1)
+ * has no query parameters, any query parameters on the actual URL ($url2)
+ * are ignored. When the expected URL specifies query parameters, strict
+ * equality applies.
  *
- * @param    string/array  $url1    URL to compare, a string, or an array in special format created by companion function
- * @param    string/array  $url2    URL to compare, a string, or an array in special format created by companion function
- * @return   bool                   bool TRUE if URL matches prefix; FALSE otherwise
+ * @param    string/array  $url1    Expected URL (e.g. allowlist entry), a string, or an array in special format created by companion function
+ * @param    string/array  $url2    Actual URL (e.g. visitor request), a string, or an array in special format created by companion function
+ * @return   bool                   bool TRUE if URL matches; FALSE otherwise
  */
 if ( ! function_exists( 'jr_v1_same_url' ) ) {
 	function jr_v1_same_url( $url1, $url2 ) {
@@ -119,6 +122,9 @@
 		if ( is_string( $url2 ) ) {
 			$url2 = jr_v1_prep_url( $url2 );
 		}
+		if ( array() === $url1['query'] ) {
+			$url2['query'] = array();
+		}
 		return ( $url1 == $url2 );
 	}
 }