|
|
@@ -617,6 +617,12 @@ class Router
|
|
|
return $output;
|
|
|
}
|
|
|
if (is_array($url)) {
|
|
|
+ if (isset($url['_ssl'])) {
|
|
|
+ if (!isset($url['_full'])) {
|
|
|
+ $url['_scheme'] = ($url['_ssl'] === true) ? 'https' : 'http';
|
|
|
+ }
|
|
|
+ unset($url['_ssl']);
|
|
|
+ }
|
|
|
if (isset($url['_full']) && $url['_full'] === true) {
|
|
|
$full = true;
|
|
|
unset($url['_full']);
|
|
|
@@ -625,10 +631,6 @@ class Router
|
|
|
$frag = '#' . $url['#'];
|
|
|
unset($url['#']);
|
|
|
}
|
|
|
- if (isset($url['_ssl'])) {
|
|
|
- $url['_scheme'] = ($url['_ssl'] === true) ? 'https' : 'http';
|
|
|
- unset($url['_ssl']);
|
|
|
- }
|
|
|
|
|
|
$url = static::_applyUrlFilters($url);
|
|
|
|
|
|
@@ -679,6 +681,11 @@ class Router
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $protocolError = preg_match('#^[a-z][a-z0-9+\-.]*\:///#i', $output);
|
|
|
+ if ($protocolError === 1) {
|
|
|
+ $output = str_replace(':///', '://', $output);
|
|
|
+ }
|
|
|
+
|
|
|
return $output . $frag;
|
|
|
}
|
|
|
|