Magento 404 на странице администратора

около недели назад, я работал в тестовой среде для нового сайта. Я ушел на час, вернулся и теперь не могу попасть на страницу администратора, как в‘http://magento.localhost.com/admin ' приводит к отсутствию маршрута 404. Я единственный, у кого есть доступ к этому, это не жить ни в каком смысле. Я использую VBox с Ubuntu для размещения среды. С точки зрения возможных исправлений, до сих пор я старался...

  • убедитесь, что core_store, core_store_group, core_website, и идентификаторы таблицы customer_group установлены в 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 ' к url-адресу по-прежнему приводит к 404.

  • по состоянию на Magento Admin 404, файл ' app / etc / use_cache.сир для меня не существует.

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

есть ли у кого-нибудь предложения относительно того, что здесь не так? Другие возможные причины это может быть?

Спасибо за все.

изменить 1: 06 вечера 9/10/2013: в ответ на метод Алана шторма извлечения имен контроллеров, которые являются стандартными.php ищет, мне вернули много "отсутствующих" файлов контроллера. Однако после загрузки новой копии 1.7.0.2, чтобы найти эти файлы, они также не присутствовали в них. Вот мой вывод из предложения var_dump Алана в стандарте.на PHP:

  • ..."/public_html / app/code/core/Mage/Index/controllers/Adminhtml / Controller.на PHP"

  • ..."/public_html / app/code/core/Mage/Paygate/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Paypal/контроллеры/Adminhtml / контроллер.РНР"

  • ..."/public_html / app/code/core/Mage/Widget/controllers/Adminhtml / Controller.на PHP"

  • ..."/public_html / app/code/core/Mage/Oauth/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Authorizenet/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Bundle/контроллеры/Adminhtml / контроллер.РНР"

  • ..."/public_html / app/code/core/Mage/Centinel/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/компилятор/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Connect/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/загружаемый/контроллеры/Adminhtml / контроллер.РНР"

  • ..."/public_html / app/code/core/Mage/ImportExport/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Api2/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/PageCache/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/XmlConnect/контроллеры/Adminhtml / контроллер.РНР"

  • ..."/public_html / app/code/core/Mage/Adminhtml/контроллеры / контроллер.на PHP"

  • ..."/public_html / app/code/сообщество/Феникс/Moneybookers/контроллеры / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/Captcha/контроллеры/Adminhtml / контроллер.на PHP"

  • ..."/public_html / app/code/core/Mage/CurrencySymbol/контроллеры/Adminhtml / контроллер.РНР"

  • ..."/public_html / app/code/core/Mage/CurrencySymbol/контроллеры/Adminhtml / IndexController.на PHP"

решено 3: 39 вечера 9/10/2013: хорошо, это исправлено, хотя и довольно грубо. Я принял вывод предложения var_dump Алана шторма, чтобы означать, что я создал ошибку где-то в пуле основного кода (что я не собирался делать, завинчивая код по умолчанию). К сожалению ради точного обучения, я тогда заменил все это пулом основного кода по умолчанию 1.7.0.2. Это было сделано до того, как Алан обновил свой первоначальный ответ новыми предложениями, которые я никогда не исследовал. Спасибо, Алан, ты рад.

4 ответов


ошибка no route 404 обычно указывает, что Magento не может найти файл контроллера, который он считает, что он должен загрузить (обычно из-за неправильной конфигурации)

самый простой способ диагностировать это-перейти к _validateControllerClassName

#File: app/code/core/Mage/Core/Controller/Varien/Router/Standard.php
protected function _validateControllerClassName($realModule, $controller)
{
    $controllerFileName = $this->getControllerFileName($realModule, $controller);

    if (!$this->validateControllerFileName($controllerFileName)) {  
        return false;
    }

    $controllerClassName = $this->getControllerClassName($realModule, $controller);
    if (!$controllerClassName) {
        return false;
    }

    // include controller file if needed
    if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) {
        return false;
    }

    return $controllerClassName;
}

и отбросьте некоторые журналы или var_dumps вокруг возвращения false заявления. Это должно сказать вам, какие файлы Magento ищет и не может найти - обычно достаточно указать на проблему.

    if (!$this->validateControllerFileName($controllerFileName)) {  
        var_dump($controllerFileName);
        return false;
    }

    $controllerClassName = $this->getControllerClassName($realModule, $controller);
    if (!$controllerClassName) {
        var_dump($controllerClassName);
        return false;
    }

    // include controller file if needed
    if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) {
        var_dump("Couldn't include: $controllerFileName");
        return false;
    }

обновление: это нормально для Magento искать файл контроллера в нескольких местах-каждый модуль, который зарегистрирован как содержащий файлы контроллера adminhtml должен быть проверен.

однако почти все файлы контроллера, которые ищут, называются /Controller.php. По умолчанию /admin индексная страница это должно быть IndexController.php. Это заставляет меня думать, что ваша система думает, что она должна искать контроллер с пустым именем (вероятно, значение контроллера по умолчанию с /admin (а не admin/index) - это URL, который вы используете)

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

одной из распространенных причин такого поведения является недопустимое значение (или значения) устанавливается на пользовательский путь администратора

System -> Configuration -> Admin -> Admin Base URL -> Use Custom Admin Path

если значение "пользовательский путь администратора" пустое или содержит и дополнительно /, это может мешать маршрутизации.

поскольку вы не можете получить доступ к администратору, попробуйте выполнить следующий SQL-запрос

select * from core_config_data where path like '%custom_path%';    
...
292 default 0   admin/url/use_custom_path   1
293 default 0   admin/url/custom_path   admin/

если вы видите похожие результаты к вышеприведенному, или admin/url/custom_path пуст / отсутствует, но admin/url/use_custom_path по-прежнему


в моем случае, админ дает мне 404, потому что нет магазина. Я решил это, выполнив следующий запрос

SET SQL_SAFE_UPDATES=0;
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;
SET SQL_SAFE_UPDATES=1;

вы можете проверить, если вы получите следующую ошибку, зарегистрированную в var/log / system.log

ERR (3): Recoverable Error: Аргумент 1, переданный Mage_Core_Model_Store::setWebsite () должен быть экземпляром Mage_Core_Model_Website, null, вызывается в /.../приложение/код/основной/маг/основных/модель/приложение.php в строке 634 и определен в /.../ app / code / core / Mage / Core / модель / магазин.php on line 395


прежде чем что-либо проверить файл конфигурации ( app/etc/local.XML) и убедитесь, что у вас есть "admin" в качестве значения frontName тег. бывший.:

<adminhtml>
  <args>
    <frontName><![CDATA[admin]]></frontName>
  </args>
</adminhtml>

обычно, когда вы попробовать http://yoursite.com/admin это дает вам админку Попробуйте использовать такой urlhttp://yoursite.com/index.php/admin и если это работает, вероятно, вам нужно только изменить правила перезаписи или следовать предложениям (см. ссылку ниже)


У меня есть эта проблема в магазине с пользовательским url-адресом администратора www.shop.com/customadminroute / и система - > конфигурация - > веб - > параметры URL - > добавить код магазина в URL-адреса: включено

в этом случае модуль должен исправить это:

https://github.com/romfr/404adminlogin

благодаря блогу Кармен Бремен:

http://neoshops.de/2012/09/07/magento-404-fehlerseite-beim-admin-login/