1

我在旧根域的子目录中建立了一个新的 Opencart 商店:即。http://www.old-domain.com/opencart 现在我有了一个新域名,它现在可以指向子目录:即。http://www.new-domain.com(我已经正确更新了两个 config.php 文件)但是,单击任何内部链接会在地址栏中显示旧域 url。

因此,我需要用新名称替换(重写)旧名称的指导 - 同时仍保留正确的路径等。我已经进行了大量研究,并在我的 htaccess 中尝试了这个和那个但没有成功。谢谢你。

4

2 回答 2

1

问题是 OpenCart 安装在旧域上,因此该 URL 地址在其配置文件中设置为常量(定义)。

如果要更改它,请打开以下两个文件:

  • <OPENCART_ROOT>/config.php
  • <OPENCART_ROOT>/admin/config.php

并编辑这些定义:

// HTTP
define('HTTP_SERVER', 'http://olddomain.com/admin/');
define('HTTP_CATALOG', 'http://olddomain.com/');
define('HTTP_IMAGE', 'http://olddomain.com/image/');

// HTTPS
define('HTTPS_SERVER', 'http://olddomain.com/admin/');
define('HTTPS_CATALOG', 'http://olddomain.com/');
define('HTTPS_IMAGE', 'http://olddomain.com/image/');

// HTTP
define('HTTP_SERVER', 'http://newdomain.com/admin/');
define('HTTP_CATALOG', 'http://newdomain.com/');
define('HTTP_IMAGE', 'http://newdomain.com/image/');

// HTTPS
define('HTTPS_SERVER', 'http://newdomain.com/admin/');
define('HTTPS_CATALOG', 'http://newdomain.com/');
define('HTTPS_IMAGE', 'http://newdomain.com/image/');

(根目录中的配置文件没有那个/admin/URL 部分......)

这应该可以解决您的问题。

于 2013-04-20T10:41:13.650 回答
0

我相信这是您在 .htaccess 中所需要的,因此旧域的访问者将被重定向到新域。R=301 假设您已永久移至新域。:

RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteRule ^opencart/(.*)$ http://newdomain.com/$1 [R=301,L]

为确保所有内部链接都指向您需要的新域

1 - 更新您的 config.php 文件(您已经完成了

2 - 将旧域的内容(信息页面、产品描述、横幅等)中的所有出现替换为新域。phpMyAdmin 有一个方便的搜索功能,如果您可以访问它,可以找到它们。

3 -可能仍然有对旧域的引用硬编码到您的 php 和 tpl 文件中,但不应该存在 - 如果有的话,您也必须更改这些(或者最好还是修复它们以使用定义的常量在 config.php 中)

只是关于 #2 的警告 - 如果您打算直接在 phpMyAdmin 中更改这些,请不要更新任何序列化数组,除非您知道它们在做什么,例如

a:1:{i:1;a:1:{i:0;s:28:"http://olddomain.com/opencart"}}
于 2013-08-23T10:59:49.953 回答