--- globalredirect.module.orig 2008-12-22 10:34:32.000000000 +0000 +++ globalredirect.module 2010-11-26 23:42:41.000000000 +0000 @@ -151,7 +151,9 @@ } // If no alias was returned, the final check is to direct non-clean to clean - if clean is enabled - if ((variable_get('globalredirect_nonclean2clean', GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) == GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) && ((bool)variable_get('clean_url', 0)) && strpos(request_uri(), '?q=')) { + $colonpos = strpos($request, ':'); + $absolute = ($colonpos !== FALSE && !preg_match('![/?#]!', substr($request, 0, $colonpos))); + if ((variable_get('globalredirect_nonclean2clean', GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) == GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) && ((bool)variable_get('clean_url', 0)) && strpos(request_uri(), '?q=') && !$absolute) { drupal_goto($request, $query_string, NULL, 301); }