URL prefix breaks reverse proxy
Submitted by user2352352 on Sun, 08/20/2017 - 16:19
We have an installation of h5p that sits behind a reverse proxy.
This code on line 1998 of h5p.classes.php causes many things such as the video controls in the video player to break:
/** * Combines path with cache buster / version. * * @param array $assets * @return array */ public function getAssetsUrls($assets) { $urls = array(); foreach ($assets as $asset) { $url = $asset->path; // Add URL prefix if not external if (strpos($asset->path, '://') === FALSE) { $url = $this->url . $url; } // Add version/cache buster if set if (isset($asset->version)) { $url .= $asset->version; } $urls[] = $url; } return $urls; }
This line is the problem:
$url = $this->url . $url;
This results in a hard-coded URL that doesn't work when behind a reverse proxy.
Is there a reason why a fully-qualified hard-coded URL is needed here?
Is there any way to change this to a relative path?
thomasmars
Mon, 08/21/2017 - 09:40
Permalink
Hi,Which cms integration are
Hi,
Which cms integration are you using ?
I tested this in Drupal, and it should return a relative url for your assets as long as your assets are not external. This does depend on what the base_path() for your site returns. Do you have any insight to why the $url returned is not a relative url ? In most setups $this->url will just be a "/" which would make the final URL a relative url. What is returned for you ?