需要有关Opencart网站的RewriteRule的指导

时间:2013-04-20 10:34:37

标签: opencart

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

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

2 个答案:

答案 0 :(得分: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/个网址...)

这可以解决你的问题。

答案 1 :(得分: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&amp; tpl文件,但不应该 - 如果有你也必须改变它们(或者更好地修复它们以使用config.php中定义的常量)

只是对#2发出警告 - 如果你打算直接在phpMyAdmin中更改这些,请不要更新任何序列化数组,除非你知道他们在做什么,例如。

a:1:{i:1;a:1:{i:0;s:28:"http://olddomain.com/opencart"}}