我已将网站移动到新服务器上(域名相同)。前端工作正常,但管理员登录页面显示404 Not Found
错误。
有关此问题的大多数帖子都建议此帖子中提到的解决方案转移Magento网站,管理面板URL给出404
我已经尝试了所有方法,但没有任何效果。我还有其他方法可以解决此问题吗?
我已将网站移动到新服务器上(域名相同)。前端工作正常,但管理员登录页面显示404 Not Found
错误。
有关此问题的大多数帖子都建议此帖子中提到的解决方案转移Magento网站,管理面板URL给出404
我已经尝试了所有方法,但没有任何效果。我还有其他方法可以解决此问题吗?
Answers:
发生此错误的原因是,管理员的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管理员错误, 希望这对您有所帮助
您需要直接进入服务器并通过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;
当您将数据库从一台服务器移到另一台服务器时,缓存会发生一些奇怪的事情,因此您似乎需要清除它。
尝试此..re导入db备份数据库,将以下行添加到.sql文件的顶部。这将防止SQL在我们需要将其设置为0时自动为其分配ID 1。
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
如果没有成功,请在管理页面上尝试上述提到的一个Magento 404之后也检查此链接
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
只需将它们添加到.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>
我们已经移动了几次服务器,每次遇到相同或相似的问题。我们已经捕获了在每台新服务器上运行的所有脚本,并且它可以解决最近两次迁移中的所有问题,您可以试试看!问题通常出在旧网址被卡在或缓存在某处或权限不足的情况下。
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 ..
您也可以尝试将index.php添加到网址中,如下所示:
https://website.test/index.php/admin