Ошибка 404 - Не удается получить доступ к бэкэнду после перехода на новый сервер


9

Я переместил свой веб-сайт на новый сервер (имя домена совпадает). Интерфейс работает нормально, но страница входа администратора выдает 404 Not Foundошибку.

В большинстве сообщений об этой проблеме предлагаются решения, упомянутые в этом сообщении. Передача веб-сайта Magento, URL панели администратора дает 404

Я перепробовал их все, но ничего не получалось. Есть ли что-то еще, что я мог бы сделать, чтобы это исправить?

Ответы:


16

Причиной этой ошибки является то, что store_id и website_id для администратора должны быть установлены в 0 (ноль). Но когда вы импортируете базу данных на новый сервер, каким-то образом эти значения не устанавливаются в 0.

Откройте PhpMyAdmin и выполните следующий запрос в вашей базе данных: -

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Сделайте резервную копию базы данных, прежде чем вносить какие-либо изменения, также посмотрите файл журнала, чтобы найти точную проблему. Также вы можете сослаться на ссылку 404 magento admin error. Надеюсь, что это полезно для вас.


1
Привет, я уже сделал это, но не сработало.
Зекия

Извините за это ...
Бхаргав Мехта

Ссылка предлагает то же решение, которое вы упомянули, и я также очистил кеш. Все еще не исправлено, хотя
zekia

4

Я сам столкнулся с несколькими вещами, которые могут вызвать это

  • убедитесь, что .htaccess находится в корневом каталоге
  • убедитесь, что mod_rewriteвключен на новом сервере
  • проверьте базовые URL в core_config_dataтаблице
  • убедитесь, что кэширование отключено или обновлено
  • проверить владельца файла и права доступа к файлам

2

Вам нужно подключиться к серверу напрямую и сделать это через SSH / FTP

Вы должны удалить следующий файл

 app/etc/use_cache.ser

Если вы получите ошибку после этого, как

 Notice: Undefined index: 0 in /srv/www/vhosts/javra.com/htdocs/munchad2/app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92

Затем перейдите к управлению базой данных.

Откройте PhpMyAdmin. Перейдите в базу данных. Нажмите кнопку SQL. Выполните следующий запрос SQL: _

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE     customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Что-то странное происходит с кешем, когда вы перемещаете базы данных с одного сервера на другой, поэтому кажется, что вам нужно очистить его.


привет, проверьте это решение?
Никунь Вадария

2

ПОПРОБУЙТЕ ЭТО..re import ur db backup вашей базы данных добавьте строку ниже в начало файла .sql. Это будет препятствовать тому, чтобы SQL автоматически назначал идентификатор 1, когда нам нужно, чтобы это было 0.

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */

если нет успеха, проверьте эту ссылку также после того, как попробовали вышеупомянутый Magento 404 на странице администратора


2

Откройте PhpMyAdminи выполните следующий запрос в вашей базе данных

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

затем удалите две папки из file manager->var -> cache & session


1
В отличие от других предложений, это был правильный процесс, который мне нужно было выполнить. Запрос работает, чтобы получить доступ, но мне все равно пришлось очистить другие 2 папки.
aknatn

1

просто добавьте их в .htaccess

<IfModule mod_rewrite.c>

############################################
## Enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## You can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## Workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## Never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## Rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>

1

Мы перемещали серверы несколько раз, и каждый раз у нас возникали одинаковые или похожие проблемы. Мы разработали скрипт, который запускаем на каждом новом сервере, и он работает, чтобы исправить все наши проблемы за последние две миграции, вы можете попробовать! Проблема обычно заключалась в том, что старый URL где-то застрял или где-то кешировался, или разрешение вышло из строя.

rm -rf var/cache
rm -rf var/full_page_cache/
rm -rf media/catalog/product/cache
rm -rf var/session/*
php shell/indexer.php --reindexall
chown -R apache .
systemctl restart mysqld
systemctl restart httpd 

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
find feeds -type f -exec chmod 644 {} \;
chmod 777 var -R
chmod 777 media -R
chcon -R -t httpd_sys_rw_content_t .
chcon -Rv --type=httpd_sys_content_t ..

0

Вы также можете попробовать добавить index.php к URL-адресу следующим образом:

https://website.test/index.php/admin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.