Неверное перенаправление на старый сайт после дублирования Magento

У меня возникла следующая проблема: проблема перенаправления Magento после перемещения

Я изменил локальный xml, удалил кеш, изменил безопасную и небезопасную ссылку, все… Это не работает. Единственная разница в том, что я продублировал свою установку на том же сервере и изменил имя подкаталога для второй установки. Но я пробовал и на другом сервере, и почти то же самое, за исключением того факта, что он постоянно связывает меня с Google, а не со старым доменом.

Я заметил, что если на другом сервере я не меняю имя подкаталога, то все работает (и я не понимаю, почему), но я хочу на этом же сервере 2 одинаковые установки с 2 одинаковыми базами данных. Как я могу? В чем проблема? Как я могу избежать этого неправильного перенаправления?


person Deep Black    schedule 02.05.2012    source источник


Ответы (3)


Magento сильно зависит от кэширования. В прошлом я замечал, что мне приходилось очищать интернет-кэш браузера перед обновлением перенаправлений.

Кроме того, если вы клонировали/продублировали код и базу данных, скорее всего, у вас будут старые URL-адреса в модуле перезаписи. Вы пытались перезагрузить все индексы после перемещения и изменения URL-адресов в конфигурации magento?

В худшем случае вам, возможно, придется изменить URL-адрес в таблице core_config_data в базе данных.

person deepmark    schedule 02.05.2012
comment
Я изменил только безопасный и небезопасный URL-адрес в core_config_data. Но как я могу перезагрузить все индексы, не входя в панель администратора клонированного сайта? Есть ли способ? - person Deep Black; 02.05.2012
comment
в корневой папке должна быть папка оболочки и файл php с именем indexer.php, который вы можете запустить с помощью: php -q index.php reindexall - person deepmark; 02.05.2012

Для учета base_url переиндексация не требуется. Требуется только очистка кеша. Вы уверены, что сделали это хорошо? Какую систему кэширования вы используете?

Что вы изменили в своем local.xml для этого? Вы уверены, что не оставили старую информацию, например, в local.bak.xml? Magento читает каждый файл xml в /app/etc

person JBreton    schedule 02.05.2012
comment
Я удалил все файлы в var/cache и var/session. Это правильно? Я не знаю, какую систему кэширования я использую, я думаю, это система по умолчанию. - person Deep Black; 02.05.2012
comment
В local.xml я изменил имя пользователя, пароль и имя базы данных для новой клонированной базы данных. В app/etc у меня есть local.xml, local.xml.additional и local.xml.template. - person Deep Black; 02.05.2012
comment
Если вы не знаете, какую систему кэширования вы используете, вам следует использовать первую файловую систему, поэтому да, вы должны быть правы, удаляя var/cache. var/session бесполезен, так как он содержит данные сеанса клиента, ничего не связанного с URL-адресами. Кстати, Magento заполняет var/cache после его удаления? Потому что иногда с неправильными правами доступа к файлам Magento использует временный путь PHP вместо var/cache... - person JBreton; 02.05.2012
comment
Да, это странно, потому что Magento заполняет каталог var/cache второго сайта, несмотря на то, что у меня нет доступа к второму сайту, потому что я сразу же перенаправляюсь на исходный сайт. - person Deep Black; 02.05.2012
comment
Просто если я переименую каталог клонированного сайта в имя каталога исходного сайта, я смогу получить доступ ко второму сайту. Magento принимает только имя этого каталога, имя исходного каталога, иначе меня перенаправят. - person Deep Black; 02.05.2012
comment
К какой странице Magento вы пытаетесь получить доступ? Фронт ? Назад ? Потому что Magento обычно не перенаправляет вас. он генерирует ссылки только с base_url... Он перенаправляет вас только при входе в систему - person JBreton; 02.05.2012
comment
Теперь работает... Я очень удивлен... Ничего особенного не делал. Поскольку вы мне так сказали, я в другой раз удалил кеш второго сайта Magento, а затем и кеш браузера. Я перезапустил браузер и после того, как я набрал ВРУЧНУЮ, буква за буквой, адрес главной страницы (обычно я пытался получить доступ сначала к задней странице, а затем к передней). Но я уверен, что делал это раньше, с той лишь разницей, что я не записывал URL вручную и, возможно, впервые пытался получить доступ сначала к первой странице, а затем только к задней. Я не понимаю. Спасибо за вашу помощь. - person Deep Black; 02.05.2012
comment
Да, при изменении base_url всегда лучше попробовать отобразить страницу, которая не ведет к перенаправлению, или сделать php -f cron.php - person JBreton; 02.05.2012
comment
+ 1000 JBreton, ваш комментарий о кешировании magento по временному пути PHP (в моем случае /tmp/magento) без каких-либо жалоб! (wt*?) просто, вероятно, сэкономил мне часы мучительной отладки. - person workflow; 14.03.2014

Я столкнулся с этим при переезде, и в итоге в моем файле .htaccess все еще было старое правило перезаписи, указывающее на старый домен. Если у кого-то еще есть эта проблема, для которой другие предложения не применимы, найдите что-то вроде этого:

RewriteCond %{HTTP_HOST} !^www\.localhost\.com$ [NC]
RewriteRule ^(.*)$ http://www.localhost.com/$1 [R=301,L]

и убедитесь, что localhost.com соответствует вашему домену (вышеупомянутое просто перенаправляет с постоянным перенаправлением 301, переписывая любой запрос, который не начинается с www.localhost.com на http://www.localhost.com/ (например, localhost.com без www)

person grok_in_full    schedule 02.05.2012