Every time that I have to move a PrestaShop site, developing or supporting XT Search for Algolia, I face the same dilemma. I follow the steps recommended in the official Best Development Practices: How can I migrate my PrestaShop store to a new server? Still, after downloading the backup, restoring the files, restoring the database and configuring app/config/parameters.php I got redirected to the original domain!

my how to migrate prestashop from one server to another server

The problem is simple, you restore the site, you test the new site and ...

~$ curl -I https://demo-prestashop.localhost/

HTTP/1.1 301 Moved Permanently
Date: Wed, 01 Apr 2020 16:58:07 GMT
Server: Apache/2.4.29 (Ubuntu)
Strict-Transport-Security: max-age=31536000; includeSubDomains
Location: https://demo-prestashop.extly.com/
Content-Type: text/html; charset=iso-8859-1

The solution: replace the domain that is repeated four times in the database tables! ... and, of course, the domain is also in the .htaccess.

  • Table `dbprefix_configuration`, records PS_SHOP_DOMAIN and PS_SHOP_DOMAIN_SSL
  • Table `dbprefix_shop_url`, fields `domain` and `domain_ssl`

UPDATE `dbprefix_configuration` SET `value` = "demo-prestashop.localhost" WHERE `value` = "the-original-domain.com";
UPDATE `dbprefix_configuration` SET `value` = "http://demo-prestashop.localhost" WHERE `value` = "http://the-original-domain.com";
UPDATE `dbprefix_configuration` SET `value` = "https://demo-prestashop.localhost" WHERE `value` = "https://the-original-domain.com";
UPDATE `dbprefix_shop_url` SET `domain` = "demo-prestashop.localhost", `domain_ssl` = "demo-prestashop.localhost" WHERE `domain` = "the-original-domain.com";
  1. Change app/config/parameters.php 
  2. Change the .htaccess
  3. Run the queries to change the `dbprefix_configuration` and `dbprefix_shop_url` tables
  4. To be on the safe side, clear the cache folder var/cache/prod

That's it! Clear the cache and no more redirections.

curl -I https://demo-prestashop.localhost/
HTTP/2 200 
date: Wed, 01 Apr 2020 17:06:32 GMT

To the moon!

Bonus Tip: Cache Configuration and Development Mode

If there is a system mismatch and a PHP extension (such as APC PECL extension), PrestaShop doesn't come up even when the points detailed above are OK. To check what's going on, you can enable the Development Mode (config/defines.inc.php, _PS_MODE_DEV_ = true) and disable the configured cache completely (app/config/parameters.php, ps_cache_enable' => false). 

Aníbal Sánchez - Perdido y Encontrado en la Computación

Aníbal Sánchez

Versatile Software Engineer | Full-Stack Developer (PHP, Laravel, Java, Spring, Vue.js/Vite) | Data Science Enthusiast | Open Source Contributor | Tech Entrepreneur

Bio

  • PHP-Prefixer / Product Manager
  • PHP-Prefixer is an automated online service powered by a complex rule-based system that applies prefixes to Composer dependencies.
  • Extly Tech / Team Leader
  • Empower your project with our web solutions. Today, working on Laravel, Amazon AWS, and Ionic. A Joomla Volunteer.

Follow @anibalsanchez


Aikido Manual Aetaiki - Aikikai