Prestashop 在数据库中更改旧域后重定向到旧域
Prestashop redirects to old domain after changing it in Database
我正在尝试创建用于开发目的的 prestashop 1.6 电子商店的副本,从 domain.com 到 dev.domain.com
我遵循的流程是
- 禁用缓存和编译
- 将文件从 domain.com 复制到 dev.domain.com
- 从 domain.com 转储 mysql 数据库到 dump.sql
- 在 vi 上打开 dump.sql 并使用 :%s/domain.com/dev.domain.com/g
搜索和替换
- 在 devdb
中导入 dump.sql
- 打开 prestashop cpanel 并确认所有商店 url 配置已更改。
- 打开 phpmyadmin 并检查所有 domain.com 条目是否已更改为 dev.domain.com
- 已从 /cache/smarty/compile /cache/cachefs
中删除文件
- 从 prestashop 重建 .htaccess 文件。
- 更改了 devdb 中的登录凭据,以便网站加载该凭据
现在的问题是,当我打开 dev.domain.com 时,我仍然被重定向到 domain.com,我不知道下一步该做什么。
在 devdb 的 phpmyadmin 中搜索 domain.com 没有产生结果
grep -ri 'domain.com' * 在文件中也没有产生结果
有什么建议我接下来可以尝试吗?
PS: domain.com 和 dev.domain.com 是两个不同的域。一点都不相似
首先,您以正确的方式执行每个步骤真是太好了。现在的问题是:-
当您在浏览器上 运行 任何域时。浏览器为此创建缓存和 cookie。如果您更改域的任何设置,除非您完全清除浏览器缓存和 cookie,否则它不会反映。
所以只需删除您的浏览器缓存和 cookie 并尝试检查它是否有效。
注意:- 根据您遵循的流程,似乎存在唯一的问题。
对于 prestashop 1.7,您必须修改数据库中的一些值:
- ps_configuration table 并将 PS_SHOP_DOMAIN 和 PS_SHOP_DOMAIN_SSL 更改为您的新域名,例如mydomain.com
- ps_shop_url table 并再次将“域”、“domain_ssl”字段更改为您的新域名和“physical_uri'。如果您将文件复制到
根文件夹,路径将只是“/”。
更多关于https://blog.premium-templates.eu/how-to-move-prestashop-from-localhost-to-domain-or-vice-versa
注意:浏览器缓存重定向,您必须清理浏览器缓存。检查 https://www.getfilecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/ 了解如何为您的浏览器执行“硬刷新”。
清除浏览器缓存,没有看到这个错误,真正的答案是在 ps_configuration 和 ps_shop_url table 中更改 PS_SHOP_DOMAIN 和 PS_SHOP_DOMAIN_SSL
您的程序是正确的,只有少数几个因素可能导致您的问题
- 确保您的 Web 服务器配置中没有手动重定向(或 Apache 的旧
.htaccess
)
- 从数据库更改 Prestashop 域(详见下文)
- 从数据库中清除所有缓存更新 Prestashop 域(详见下文)
- 始终在 incognito/developer 模式下使用浏览器进行测试,禁用所有缓存的重定向。我个人在开发者模式下使用隐身 Chrome window
- 调试时,最好检查网络服务器的日志以及浏览器的网络交换,以确定问题的根源
这是我用来为 Prestashop 1.7 自动执行缓存清理和域更改的一些基本脚本。
1。更改 Prestashop 的域
使用模板文件生成.sql
文件来修补数据库。如果更方便,您可以直接在数据库上手动 运行。
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}';
生成真正的.sql
补丁文件,并应用
$ export SHOP_DOMAIN=mydomain.com
$ envsubst < patch-domain.sql.template > patch-domain.sql
$ mysql -u <username> -p <database> < patch-domain.sql
2。清除 Prestashop 缓存
删除除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
编辑:更新后的 gist 可在此处访问
这是一个旧的 post 但也许有人会得到帮助
按照以下步骤操作:https://zemez.io/prestashop/support/how-to/prestashop-1-7-transfer-website-one-domain-another/
在 parameters.php 中也将日期更改为实际日期
在config/defines.inc set define('PS_MODE_DEV', true);所以管理面板不会是空白页
完成
我正在尝试创建用于开发目的的 prestashop 1.6 电子商店的副本,从 domain.com 到 dev.domain.com
我遵循的流程是
- 禁用缓存和编译
- 将文件从 domain.com 复制到 dev.domain.com
- 从 domain.com 转储 mysql 数据库到 dump.sql
- 在 vi 上打开 dump.sql 并使用 :%s/domain.com/dev.domain.com/g 搜索和替换
- 在 devdb 中导入 dump.sql
- 打开 prestashop cpanel 并确认所有商店 url 配置已更改。
- 打开 phpmyadmin 并检查所有 domain.com 条目是否已更改为 dev.domain.com
- 已从 /cache/smarty/compile /cache/cachefs 中删除文件
- 从 prestashop 重建 .htaccess 文件。
- 更改了 devdb 中的登录凭据,以便网站加载该凭据
现在的问题是,当我打开 dev.domain.com 时,我仍然被重定向到 domain.com,我不知道下一步该做什么。
在 devdb 的 phpmyadmin 中搜索 domain.com 没有产生结果 grep -ri 'domain.com' * 在文件中也没有产生结果
有什么建议我接下来可以尝试吗?
PS: domain.com 和 dev.domain.com 是两个不同的域。一点都不相似
首先,您以正确的方式执行每个步骤真是太好了。现在的问题是:-
当您在浏览器上 运行 任何域时。浏览器为此创建缓存和 cookie。如果您更改域的任何设置,除非您完全清除浏览器缓存和 cookie,否则它不会反映。
所以只需删除您的浏览器缓存和 cookie 并尝试检查它是否有效。
注意:- 根据您遵循的流程,似乎存在唯一的问题。
对于 prestashop 1.7,您必须修改数据库中的一些值:
- ps_configuration table 并将 PS_SHOP_DOMAIN 和 PS_SHOP_DOMAIN_SSL 更改为您的新域名,例如mydomain.com
- ps_shop_url table 并再次将“域”、“domain_ssl”字段更改为您的新域名和“physical_uri'。如果您将文件复制到 根文件夹,路径将只是“/”。
更多关于https://blog.premium-templates.eu/how-to-move-prestashop-from-localhost-to-domain-or-vice-versa
注意:浏览器缓存重定向,您必须清理浏览器缓存。检查 https://www.getfilecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/ 了解如何为您的浏览器执行“硬刷新”。
清除浏览器缓存,没有看到这个错误,真正的答案是在 ps_configuration 和 ps_shop_url table 中更改 PS_SHOP_DOMAIN 和 PS_SHOP_DOMAIN_SSL
您的程序是正确的,只有少数几个因素可能导致您的问题
- 确保您的 Web 服务器配置中没有手动重定向(或 Apache 的旧
.htaccess
) - 从数据库更改 Prestashop 域(详见下文)
- 从数据库中清除所有缓存更新 Prestashop 域(详见下文)
- 始终在 incognito/developer 模式下使用浏览器进行测试,禁用所有缓存的重定向。我个人在开发者模式下使用隐身 Chrome window
- 调试时,最好检查网络服务器的日志以及浏览器的网络交换,以确定问题的根源
这是我用来为 Prestashop 1.7 自动执行缓存清理和域更改的一些基本脚本。
1。更改 Prestashop 的域
使用模板文件生成.sql
文件来修补数据库。如果更方便,您可以直接在数据库上手动 运行。
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}';
生成真正的.sql
补丁文件,并应用
$ export SHOP_DOMAIN=mydomain.com
$ envsubst < patch-domain.sql.template > patch-domain.sql
$ mysql -u <username> -p <database> < patch-domain.sql
2。清除 Prestashop 缓存
删除除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
编辑:更新后的 gist 可在此处访问
这是一个旧的 post 但也许有人会得到帮助
按照以下步骤操作:https://zemez.io/prestashop/support/how-to/prestashop-1-7-transfer-website-one-domain-another/
在 parameters.php 中也将日期更改为实际日期
在config/defines.inc set define('PS_MODE_DEV', true);所以管理面板不会是空白页
完成