エラー404-新しいサーバーに移動した後、バックエンドにアクセスできません


9

新しいサーバーにドメインを移動しました(ドメイン名は同じです)。フロントエンドは正常に動作していますが、管理者ログインページで404 Not Foundエラーが発生します。

この問題に関するほとんどの投稿は、この投稿に記載されている解決策を示唆していますMagentoのウェブサイトを転送しています、管理パネルのURLは404を示しています

私はそれらすべてを試しましたが、何もうまくいきませんでした。これを修正するために他に何かできることはありますか?

回答:


16

このエラーの理由は、adminの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 2014年

申し訳ありません...
Bhargav Mehta 2014

リンクはあなたが言及したのと同じソリューションを示唆しており、私もキャッシュをクリアしました。まだ修正されていません
zekia 2014年

4

私はこれを引き起こす可能性のあるいくつかのことを自分自身に遭遇しました

  • .htaccessがルートディレクトリに配置されていることを確認してください
  • mod_rewrite新しいサーバーで有効になっていることを確認してください
  • core_config_dataテーブルのベースURLを確認してください
  • キャッシュがオフまたは更新されていることを確認してください
  • ファイルの所有者とファイルの権限を確認する

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;

あるサーバーから別のサーバーにデータベースを移動すると、キャッシュで奇妙なことが起こり、それをクリアする必要があるようです。


こんにちはこのソリューションをチェックしますか?
Nikunj Vadariya 2014年

2

TRY THIS..re import ur db backup your database以下の行を.sqlファイルの先頭に追加します。これにより、IDが0である必要がある場合に、SQLが自動的に1のIDを割り当てることを防ぎます。

/*!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 & から2つのフォルダを削除します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

サーバーを数回移動し、毎回同じまたは同様の問題が発生しました。新しいサーバーごとに実行するすべてをキャッチするスクリプトを作成しました。これにより、最後の2つの移行のすべての問題が修正され、試してみることができます。問題は通常、古い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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.