Prestashop redirects to old domain after changing it in Database

社会主义新天地 提交于 2019-12-04 06:10:40

First of all it's great that you follow each step in correct manner. Now the problem is:-

When ever you are running any domain on your browser. Browser create cache and cookie for this. If you change any setting of your domain, it will not reflect till you not clear your browser cache and cookie completely.

So just remove your browser cache and cookie and try to check is it working or not.

Note:- Based on your process that you follow, this only problem seems to exist.

For prestashop 1.7 you have to modify some values in the database:

ps_configuration table and change PS_SHOP_DOMAIN and PS_SHOP_DOMAIN_SSL to your new domain name, e.g. mydomain.com

ps_shop_url table and change again ‘domain’, ‘domain_ssl’ fields to your new domain name and ‘physical_uri’. If you copied files into root folder, the path will be simply ‘/’.

More on https://blog.premium-templates.eu/how-to-move-prestashop-from-localhost-to-domain-or-vice-versa

Note: browsers cache such redirection, you will have to clean your browser cache. Check https://www.getfilecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/ to know how to do a "hard refresh" for your browser.

Your procedure is right, there is only a few factors that may cause your issue

  1. Make sure that there is no manual redirection in your web server configuration (or old .htaccess for Apache)
  2. Change Prestashop domains from the database (detailed below)
  3. Clear all your cache Update Prestashop domains from the database (detailed below)
  4. Always test with a browser in incognito/developer mode, disabling all cached redirections. I personally use an incognito Chrome window, in developer mode
  5. When debugging, it is a good idea to inspect the logs from your webserver as well as the network exchanges from your browser to identify the source of the issue

Here are a few rudimentary scripts I use to automate the cache cleanup and domain change for Prestashop 1.7.

1. Change Prestashop's domain

Use a template file to generate a .sql file to patch the database. If more convenient, you can manually run that on your database directly.

patch-domain.sql.template:

UPDATE ps_configuration SET value='${SHOP_DOMAIN}' WHERE name='PS_SHOP_DOMAIN';
UPDATE ps_configuration SET value='${SHOP_DOMAIN}' WHERE name='PS_SHOP_DOMAIN_SSL';
UPDATE ps_shop_url SET domain='${SHOP_DOMAIN}', domain_ssl='${SHOP_DOMAIN}';

Generate the real .sql patch file, and apply it

$ export SHOP_DOMAIN=mydomain.com
$ envsubst < patch-domain.sql.template > patch-domain.sql
$ mysql -u <username> -p <database> < patch-domain.sql

2. Clear Prestashop cache

Remove all cache files except index.php

clear-cache.sh:

#!/bin/bash
base_dir='./shared/prestashop/html'

# Clear class index in case any override changed
rm ${base_dir}/cache/class_index.php

declare -a cache_dirs=(
    "cache/smarty/compile"
    "cache/smarty/cache"
    "cache/cachefs"
    "img/tmp" # You might want to keep tmp images
    "themes/*/cache"
    "var/cache")

# Clear all cache folder, ignoring 'index.php'
for dir in "${cache_dirs[@]}"
do
    echo Cleaning ${base_dir}/${dir}...
    find ${base_dir}/${dir} -type f ! -name index.php -delete
done

EDIT: The updated gist is accessible here

Clear browser cache, nothing to see with this error, the real answer is change PS_SHOP_DOMAIN and PS_SHOP_DOMAIN_SSL in ps_configuration and ps_shop_url table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!