spacebiscuit75 Posted November 19, 2019 Share Posted November 19, 2019 I have enabled SSL on my site and now all images are broken, when I view the console of the browser the urls are of the format: https://mydomain.com/https://mydomain.com/image.jpg The domain is duplicated. My configure.php is as follows: define('HTTP_SERVER', 'http://' . $_SERVER['SERVER_NAME']); define('HTTPS_SERVER', 'http://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL', true); // secure webserver for checkout procedure? define('HTTP_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTPS_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTP_COOKIE_PATH', '/'); define('HTTPS_COOKIE_PATH', '/'); define('DIR_WS_HTTP_CATALOG', '/'); define('DIR_WS_HTTPS_CATALOG', '/'); define('DIR_FS_CATALOG', dirname($_SERVER['SCRIPT_FILENAME']) . '/'); define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); define('DIR_FS_ADMIN', $_SERVER['DOCUMENT_ROOT'] . '/******/'); /* db congig here */ define('DIR_WS_INCLUDES', 'includes/'); define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/'); define('FONT_PATH', DIR_FS_ADMIN); define('DIR_WS_ICONS', 'images/icons/'); Similarly for the admin config define('HTTP_SERVER', 'http://' . $_SERVER['SERVER_NAME']); define('HTTPS_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL', true); define('HTTP_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTPS_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTP_COOKIE_PATH', '/'); define('HTTPS_COOKIE_PATH', '/'); define('HTTP_CATALOG_SERVER', 'http://' . $_SERVER['SERVER_NAME']); define('HTTPS_CATALOG_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL_CATALOG', 'false'); define('DIR_FS_DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT']); define('DIR_WS_ADMIN', '/****/'); define('DIR_FS_ADMIN', $_SERVER['DOCUMENT_ROOT'] . '/****/'); define('DIR_WS_HTTPS_ADMIN', '/1eiow3j4rj4ioj3iodjewghjfq1/'); define('DIR_WS_CATALOG', '/'); define('DIR_WS_HTTPS_CATALOG', '/'); define('DIR_FS_CATALOG', $_SERVER['DOCUMENT_ROOT'] . '/'); define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/'); define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/languages/'); define('DIR_FS_CATALOG_LANGUAGES', $_SERVER['DOCUMENT_ROOT'] . '/includes/languages/'); define('DIR_FS_CATALOG_IMAGES', $_SERVER['DOCUMENT_ROOT'] . '/images/'); define('DIR_FS_CATALOG_MODULES', $_SERVER['DOCUMENT_ROOT'] . '/includes/modules/'); define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/'); define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); I had a similar problem for a js includes which had the issue until I put a trailing slash in front, so I guess the clue is in this? Any ideas? Link to comment Share on other sites More sharing options...
ArtcoInc Posted November 19, 2019 Share Posted November 19, 2019 @spacebiscuit75 35 minutes ago, spacebiscuit75 said: My configure.php is as follows: define('HTTP_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('HTTPS_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL', true); // secure webserver for checkout procedure? define('HTTP_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTPS_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTP_COOKIE_PATH', '/'); define('HTTPS_COOKIE_PATH', '/'); define('DIR_WS_HTTP_CATALOG', '/'); define('DIR_WS_HTTPS_CATALOG', '/'); define('DIR_FS_CATALOG', dirname($_SERVER['SCRIPT_FILENAME']) . '/'); define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); define('DIR_FS_ADMIN', $_SERVER['DOCUMENT_ROOT'] . '/******/'); /* db congig here */ define('DIR_WS_INCLUDES', 'includes/'); define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/'); define('FONT_PATH', DIR_FS_ADMIN); define('DIR_WS_ICONS', 'images/icons/'); Similarly for the admin config define('HTTP_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('HTTPS_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL', true); define('HTTP_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTPS_COOKIE_DOMAIN', $_SERVER['SERVER_NAME']); define('HTTP_COOKIE_PATH', '/'); define('HTTPS_COOKIE_PATH', '/'); define('HTTP_CATALOG_SERVER', 'http://' . $_SERVER['SERVER_NAME']); define('HTTPS_CATALOG_SERVER', 'https://' . $_SERVER['SERVER_NAME']); define('ENABLE_SSL_CATALOG', 'false'); define('DIR_FS_DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT']); define('DIR_WS_ADMIN', '/****/'); define('DIR_FS_ADMIN', $_SERVER['DOCUMENT_ROOT'] . '/****/'); define('DIR_WS_HTTPS_ADMIN', '/1eiow3j4rj4ioj3iodjewghjfq1/'); define('DIR_WS_CATALOG', '/'); define('DIR_WS_HTTPS_CATALOG', '/'); define('DIR_FS_CATALOG', $_SERVER['DOCUMENT_ROOT'] . '/'); define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/'); define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/languages/'); define('DIR_FS_CATALOG_LANGUAGES', $_SERVER['DOCUMENT_ROOT'] . '/includes/languages/'); define('DIR_FS_CATALOG_IMAGES', $_SERVER['DOCUMENT_ROOT'] . '/images/'); define('DIR_FS_CATALOG_MODULES', $_SERVER['DOCUMENT_ROOT'] . '/includes/modules/'); define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/'); define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/'); define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/'); You need to change the http:// to https:// in the first two lines in both config files. M Link to comment Share on other sites More sharing options...
spacebiscuit75 Posted November 20, 2019 Author Share Posted November 20, 2019 A quick update: upon further inspection I discovered that the images look as if they have the correct url: <img src="images/foobar.jpg ...../> However the console shows the url with the double domain as pointed out in my original post. If I inspect the DOM and add the leading slash the image appear. When I debug the code I can see that the url of the image is set by concatenating the params which the tep_image function requires: tep_image('images/', ..... Therefore out of the box the url of the image is correct. If I switch to the http version the url is the same and it works. This is very weird! Link to comment Share on other sites More sharing options...
spacebiscuit75 Posted November 20, 2019 Author Share Posted November 20, 2019 10 minutes ago, ArtcoInc said: @spacebiscuit75 You need to change the http:// to https:// in the first two lines in both config files. M Are you sure about that? Why would the http url be https? That seems like a hack to make it work, it doesn't make any difference here. The example configure.php: define('HTTP_SERVER', ''); // eg, http://localhost - should not be empty for productive servers define('HTTPS_SERVER', ''); // eg, https://localhost - should not be empty for productive servers Link to comment Share on other sites More sharing options...
ArtcoInc Posted November 20, 2019 Share Posted November 20, 2019 As I understand it, if there are http:// links in your shop, you want them to actually to be processed as https://, hence the need to have both in your config file(s). Do a search in the forum. There are many threads here stating this exact same 'fix'. M (also, line 8 in the admin config file) Link to comment Share on other sites More sharing options...
spacebiscuit75 Posted November 20, 2019 Author Share Posted November 20, 2019 17 minutes ago, ArtcoInc said: As I understand it, if there are http:// links in your shop, you want them to actually to be processed as https://, hence the need to have both in your config file(s). Do a search in the forum. There are many threads here stating this exact same 'fix'. M (also, line 8 in the admin config file) I'm an idiot - I was missing the : after https: define('HTTPS_SERVER', 'https//' . $_SERVER['SERVER_NAME']); The 'solution' to set the https version of the site as http is a hack in my opinion, regardless if many here on the forum have used this to fix the issue. If you're using this approach then I would fix the real cause of the issue instead of that work-around - just my two cents worth though! Link to comment Share on other sites More sharing options...
ArtcoInc Posted November 20, 2019 Share Posted November 20, 2019 As long as you got it working .... Link to comment Share on other sites More sharing options...
BrockleyJohn Posted November 20, 2019 Share Posted November 20, 2019 6 hours ago, spacebiscuit75 said: The 'solution' to set the https version of the site as http is a hack in my opinion, regardless if many here on the forum have used this to fix the issue. If you're using this approach then I would fix the real cause of the issue instead of that work-around - just my two cents worth though! Having the http and https server versions in the config dates back to a time when sites would only use ssl for some pages - account and checkout and not the whole thing. Nowadays you probably want ssl across the whole site so set them both to https Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released. Looking for a payment or shipping module? Maybe I've already done it. Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.