大约一周前,我在一个新网站的测试环境中工作 . 我离开了一个小时,回来了,现在无法进入管理页面,因为'http://magento.localhost.com/admin'导致了无路线404.我是唯一一个可以访问它的人,它在任何意义上都没有 . 我正在使用VBox和Ubuntu来托管环境 . 在可能的修复方面,到目前为止我已经尝试过......
-
确保将core_store,core_store_group,core_website和customer_group表id设置为0(如本文和许多其他文章中所述 - http://www.nude-webdesign.com/fix-for-magento-admin-error-404-page-not-found/)
-
使用/app/code/core/Mage/Core/Controller/Varien/Front.php方法_isAdminFrontNameMatched播放以显示adminPath(它是'admin')
-
清除var文件夹,清空浏览器缓存 . 网站的缓存已关闭 .
-
将“index.php”添加到网址仍然会产生404 .
-
根据Magento Admin 404,文件'app/etc/use_cache.ser'对我来说不存在 .
在发生这一天的那天,我只是简单地玩了一些我复制到我制作的模块的布局文件和主题的媒体查询(所有这些都在这个问题开始发生之前就恢复到原始状态) .
有没有人对这里有什么问题有任何建议?这可能发生的任何其他可能的原因?
谢谢你的一切 .
EDIT 1:06pm 9/10/2013: 响应Alan Storm 's method of retrieving controller names that Standard.php is looking for, I was returned many 1132203 controller files. However, after downloading a fresh copy of 1.7.0.2 to find those files, they weren' t出现在他们中间 . 以下是我在Standard.php中关于Alan的var_dump建议的输出:
-
...“/ public_html / app / code / core / Mage / Index / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Paygate / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Paypal / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Widget / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Oauth / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Authorizenet / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Bundle / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Centinel / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Compiler / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Connect / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Downloadable / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / ImportExport / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Api2 / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / PageCache / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / XmlConnect / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / Adminhtml / controllers / Controller.php”
-
...“/ public_html / app / code / community / Phoenix / Moneybookers / controllers / Controller.php”
-
...“/ public_html / app / code / core / Mage / Captcha / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / CurrencySymbol / controllers / Adminhtml / Controller.php”
-
...“/ public_html / app / code / core / Mage / CurrencySymbol / controllers / Adminhtml / IndexController.php”
Resolved 3:39pm 9/10/2013: 好吧,它's fixed albeit rather bluntly. I took the output of Alan Storm'的var_dump建议意味着我在核心代码池的某个地方创建了一个错误(这不是我打算做的事情,拧紧默认代码) . 不幸的是,为了精确学习,我用1.7.0.2的默认核心代码池替换了它 . 这是在Alan更新他的原始答案之前完成的,并提出了我从未调查过的更多建议 . 谢谢艾伦,你真是太棒了 .
4 回答
我在自定义管理员网站www.shop.com/customadminroute/和系统 - >配置 - >网络 - >网址选项 - >添加商店代码到网址的商店中遇到此问题:已启用
在这种情况下,以下模块应该修复它:
https://github.com/romfr/404adminlogin
感谢Carmen Bremen的博客文章:
http://neoshops.de/2012/09/07/magento-404-fehlerseite-beim-admin-login/
在我的情况下,我的管理员给了我404,因为没有商店设置 . 我通过运行以下查询解决了它
您可以检查是否在var / log / system.log中记录了以下错误
在任何事情之前检查您的配置文件(app / etc / local.xml)并确保"admin"_为
frontName
标记的值 . 例:通常当你尝试http://yoursite.com/admin它给你管理区域尝试使用类似http://yoursite.com/index.php/admin的网址,如果它有效,你可能只需要修改重写规则或遵循建议(见下面的链接)
无路由404错误通常表示Magento找不到它认为应该加载的控制器文件(通常是由于配置错误)
诊断这个的最简单方法是跳到
_validateControllerClassName
并在返回
false
语句周围删除一些日志记录或var_dump
. 这应该告诉你Magento正在寻找哪些文件,并且't find — it'通常足以指出问题 .Update :Magento在多个地方查找控制器文件是正常的 - 每个注册为包含adminhtml控制器文件的模块都需要进行检查 .
但是,几乎所有要查找的控制器文件都被命名为
/Controller.php
. 对于默认的/admin
索引页面,这应该是IndexController.php
. 这让我觉得你的系统认为它应该寻找一个空白名称的控制器(可能是/admin
(而不是admin/index
)的默认控制器值是你正在使用的URL)有很多原因会发生这种情况 - 很多原因都是围绕正在更改的核心文件或模块中的配置节点设置为错误的值 . 如果下面的解决方案不适合你,你需要尝试区分你的代码库而不是干净的代码库,禁用每个自定义模块,如果修复的东西会重新启动模块,直到找到问题模块或潜水深入调试Magento路由代码,找出你的系统不满意的原因 .
导致此行为的一个常见原因是为自定义管理路径设置了无效值(或根本没有值)
如果"custom admin path"的值为空,或包含和附加
/
,则可能会干扰路由 .由于您无法访问管理员,请尝试运行以下SQL查询
如果你看到类似于上面的结果,或者
admin/url/custom_path
是空白/不存在但是admin/url/use_custom_path
仍然是1
- 那那就是你的问题 .尝试从
core_config_data
删除这些配置值(admin/url/use_custom_path
)和(admin/url/use_custom_path
) .如果这不适用于您的系统,根据我的空白控制器理论,我最好的猜测是由于某些未知原因的代码
正在使用空值填充
controller
键 .