尽管我可能找到所有因素,但 Magento 站点副本重定向到旧域
Magento site copy redirecting to old domain despite all factors I could possibly find
就在一天前,我的生产网站的暂存副本运行良好。我认为与此后发生的任何事情都没有关系。
- 实时站点:
http://www.domain.co.uk/
- 暂存站点:
http://devdomain.com/stage/site/
这两个域都在同一台服务器上,每个都是单独的 Magento 安装,只有一个商店。使用 Sonassi 的 mage-dbdump.sh 从实时转储数据库。
起初我注意到该站点完全重定向到我们的实时站点,无论怎样 URL。修复一些问题后,我注意到我可以 运行 除了 Magento 的 index.php 之外的任何 PHP 文件,它总是根据 Firebug Net 进行 302 重定向到实时站点标签。 (第一个header是为了stage/site 302 Found,第二个是live site 200 OK)
稍后又进行了几次修复尝试,它无论如何都重定向到实时站点,甚至没有在它重定向的 Firebug 网络选项卡中说明。
这是我为修复它所做的事情的列表(现在可能已经忘记了一些):
- 如本 post(http 和 https)
顶部所示,更改了数据库中的安全和不安全基础 URLs
- 更改了资源 URL,如 CSS/JS 和数据库中的媒体,以使用花括号中的基本 URL 变量
- 在 app/etc/local 中更改了基础 URLs。xml
- 确保数据库用户、密码和主机地址正确
- 将所有出现的活动地址替换为 .htaccess 中的暂存地址
- 在 .htaccess 中尝试注释 Rewrite Base,并取消注释“/”和“/stage/site/”
- 确保 .htaccess 使用 index.php 作为 "DirectoryIndex"
- 禁用 CSS 和 JS 在数据库中合并
- 在整个开发域上使用
chown
以确保一切正常工作
- 在所有目录上使用
chmod 755
,在所有文件上使用 chmod 644
,在 "mage" 文件上使用 chmod 550
- 二手magento-cleanup.php
- 使用 magento-check.php(起初它和 live 一样,后来尝试了很多东西之后 chmod() 出于某种原因被禁止了)
- 使用另一个简短的 PHP 脚本获取 Mage::app 并清除缓存
- 在服务器
上删除了/tmp/magento和/tmp/livedomain
- 在服务器上重新启动 Apache
- 在 Chrome、Firefox、Vivaldi、Firefox Developer Edition 及其所有隐私浏览 windows 上尝试了所有提到的东西,并清除了浏览器缓存和 cookies
- 在 index.php 上启用了错误显示,但显然我无法接近它,因为它一直在重定向
- 删除 local.xml 以尝试触发 Magento 安装
- 删除 .htaccess 允许任何其他 PHP 文件到 运行,除了 index.php 仍然重定向所有相同的
- 删除任何 parent 目录 .htaccess 文件(无论如何只有 Options -Indexes)
- 安装新的 Magento 网站并以与阶段站点相同的方式进行配置,但在
http://devdomain.com/stage/magento/
中并使用与阶段站点相同的 .htaccess(替换所有出现的“/stage/site /”与“/stage/magento/”)。这很好用。
- 在控制台上通过 PHP 重建索引
请告诉我我可能错过了什么。
Chrome 缓存重定向:
https://superuser.com/questions/304589/how-can-i-make-chrome-stop-caching-redirects
(即使你说你清除了缓存。)
您还可以将全新安装的基础 URL 更改为指向旧的暂存应用程序 URL,然后将旧的暂存应用程序移动到另一个目录,并验证重定向是否仍然发生。
就在一天前,我的生产网站的暂存副本运行良好。我认为与此后发生的任何事情都没有关系。
- 实时站点:
http://www.domain.co.uk/
- 暂存站点:
http://devdomain.com/stage/site/
这两个域都在同一台服务器上,每个都是单独的 Magento 安装,只有一个商店。使用 Sonassi 的 mage-dbdump.sh 从实时转储数据库。
起初我注意到该站点完全重定向到我们的实时站点,无论怎样 URL。修复一些问题后,我注意到我可以 运行 除了 Magento 的 index.php 之外的任何 PHP 文件,它总是根据 Firebug Net 进行 302 重定向到实时站点标签。 (第一个header是为了stage/site 302 Found,第二个是live site 200 OK)
稍后又进行了几次修复尝试,它无论如何都重定向到实时站点,甚至没有在它重定向的 Firebug 网络选项卡中说明。
这是我为修复它所做的事情的列表(现在可能已经忘记了一些):
- 如本 post(http 和 https) 顶部所示,更改了数据库中的安全和不安全基础 URLs
- 更改了资源 URL,如 CSS/JS 和数据库中的媒体,以使用花括号中的基本 URL 变量
- 在 app/etc/local 中更改了基础 URLs。xml
- 确保数据库用户、密码和主机地址正确
- 将所有出现的活动地址替换为 .htaccess 中的暂存地址
- 在 .htaccess 中尝试注释 Rewrite Base,并取消注释“/”和“/stage/site/”
- 确保 .htaccess 使用 index.php 作为 "DirectoryIndex"
- 禁用 CSS 和 JS 在数据库中合并
- 在整个开发域上使用
chown
以确保一切正常工作 - 在所有目录上使用
chmod 755
,在所有文件上使用chmod 644
,在 "mage" 文件上使用chmod 550
- 二手magento-cleanup.php
- 使用 magento-check.php(起初它和 live 一样,后来尝试了很多东西之后 chmod() 出于某种原因被禁止了)
- 使用另一个简短的 PHP 脚本获取 Mage::app 并清除缓存
- 在服务器 上删除了/tmp/magento和/tmp/livedomain
- 在服务器上重新启动 Apache
- 在 Chrome、Firefox、Vivaldi、Firefox Developer Edition 及其所有隐私浏览 windows 上尝试了所有提到的东西,并清除了浏览器缓存和 cookies
- 在 index.php 上启用了错误显示,但显然我无法接近它,因为它一直在重定向
- 删除 local.xml 以尝试触发 Magento 安装
- 删除 .htaccess 允许任何其他 PHP 文件到 运行,除了 index.php 仍然重定向所有相同的
- 删除任何 parent 目录 .htaccess 文件(无论如何只有 Options -Indexes)
- 安装新的 Magento 网站并以与阶段站点相同的方式进行配置,但在
http://devdomain.com/stage/magento/
中并使用与阶段站点相同的 .htaccess(替换所有出现的“/stage/site /”与“/stage/magento/”)。这很好用。 - 在控制台上通过 PHP 重建索引
请告诉我我可能错过了什么。
Chrome 缓存重定向:
https://superuser.com/questions/304589/how-can-i-make-chrome-stop-caching-redirects
(即使你说你清除了缓存。)
您还可以将全新安装的基础 URL 更改为指向旧的暂存应用程序 URL,然后将旧的暂存应用程序移动到另一个目录,并验证重定向是否仍然发生。