2013-04-20 2 views
1

Я построил новый магазин Opencart в подкаталоге старого корневого домена: т.е. http://www.old-domain.com/opencart Теперь у меня есть новое доменное имя, которое теперь указывает ok в подкаталог: т.е. http://www.new-domain.com (Я правильно обновил оба файла config.php) Однако при нажатии на любую внутреннюю ссылку отображается адрес старого домена в адресной строке.Нужно руководство по RewriteRule для сайта Opencart

Поэтому мне нужно руководство по замене (переписыванию) старого имени на новое, сохраняя при этом правильные пути и т. Д. Я провел много исследований и пробовал это и в моем htaccess без успеха. Спасибо.

ответ

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-адресов часть ...)

Это должно решить вашу проблему.

+0

Спасибо за быстрый ответ, но я уже обновил оба файла config.php, чтобы отразить новый URL .... !!! .... У меня ограниченное знание, но я считаю, что мне нужно поместить некоторый код «переписать» в мой файл htaccess .. и это то, с чем я испытываю трудности ... спасибо снова – user2300361

+0

И какая версия OC вы используете? В более старых версиях OC (до версии 1.5.0) URL-адрес хранился в таблице DB 'setting' ... В любом случае, если вы установили OpenCart во вложенную папку, убедитесь, что в файле' .htaccess' вы установили 'RewriteBase' в'/subfolder/'(вместо чистого'/'). – shadyyx

+0

Версия OC - 1.5.4.1, и RewriteBase фактически установлен в /subfolder....thanks, чтобы попытаться помочь. – user2300361

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"}} 
Смежные вопросы