+ if ( $serverHasProto ) {
+ $url = $serverUrl . $url;
+ } else {
+ // If an HTTPS URL is synthesized from a protocol-relative $wgServer, allow the
+ // user to override the port number (T67184)
+ if ( $defaultProto === PROTO_HTTPS && $wgHttpsPort != 443 ) {
+ if ( isset( $bits['port'] ) ) {
+ throw new Exception( 'A protocol-relative $wgServer may not contain a port number' );
+ }
+ $url = $defaultProtoWithoutSlashes . $serverUrl . ':' . $wgHttpsPort . $url;
+ } else {
+ $url = $defaultProtoWithoutSlashes . $serverUrl . $url;
+ }
+ }