Closed domsie closed 7 years ago
one problem is when the website loads scripts "on other ways" than the ProxifyPlugin.php wants to replace the sources for relative urls via certain regex expressions:
e.g.: chip.de loads some scripts so: [www.chip.de/Downloads_13649224.html]
<script type="text/javascript" src="/js/_merged/efws.js?t=48766"></script>
<script type="text/javascript">
EFWS.Script.loadScripts([
'/js/_merged/jQuery.js?t=61946',
'/js/_merged/jQueryUI.js?t=60289',
'/js/_merged/global.js?t=64771',
'/js/_merged/navseiten.js?t=60257'], '');
</script>
made following changes at proxifyplugin.php to set the url path from relativ to absolute within ajax calls:
` $request_uri = $this->base_url; $tmp = parse_url($this->base_url); $base_host = $tmp['scheme'].'://'.$tmp['host']; if (substr($base_host, -1) !== '/') { $base_host = $base_host.'/'; } $base_host_unencoded = $base_host;
$jquery = '<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous" type="text/javascript"></script>';
$jquery .= '<script type="text/javascript">';
$jquery .= 'var jQuery_atp = jQuery.noConflict(true);';
$jquery .= '(function ($) {';
$jquery .= 'var baseHref = $("head base").attr("href");';
$jquery .= '$.ajaxSetup({';
$jquery .= 'beforeSend: function(xhr, options) {';
$jquery .= 'options.url = baseHref + options.url;';
$jquery .= '}';
$jquery .= '});';
$jquery .= '}(jQuery_atp));';
$jquery .= '</script>';
$str = str_replace('</title>','</title><base href="'.$base_host_unencoded.'" />'.$jquery,$str);
$response->setContent($str);`
So is everything okay from your side now? Because I don't see any errors myself when I visit bild.de apart from those created by "EFWS.Script.loadScripts(["
Hi,
I just realized that not all relative urls set correctly. Some relative urls are then hung on the 'Proxy URL'.
For example: [call the website http://bild.de via an instance of php-proxy] 404 error => http://[proxy-url.de]/community/static/ajax/numcoms/47270604:47289584
this file must be call via http://bild.de/community/static/ajax/numcoms/47270604:47289584
Can this be because "HeaderRewritePlugin.php" explicitly asks if there is a value for header->location set and only when set sets a "proxify_url"?
HeaderRewritePlugin.php
ProxifyPlugin.php