Получение ошибки Magento 404 при доступе к настройкам модуля через админку - PullRequest
3 голосов
/ 18 сентября 2009

Итак, я скачал бесплатное расширение блога Magento, но оно поддерживает только один блог. Поэтому я продублировал расширение, так как мне нужно более одного блога в моем магазине magento. Я изменил все ссылки и вызовы соответствующим образом в своей копии расширения и смог установить его как отдельное расширение.

Однако , когда я хочу создать новое сообщение из админ-панели, появляется сообщение об ошибке Magento 404.

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

Обратите внимание, что для тестирования я использую две среды:

  1. локальная установка Magento через MAMP / WAMP (предварительно упакованная среда рабочего стола LAMP для Mac и Windows) с PHP 5.2.6, MySQL 5 и Apache 2.0.59

  2. веб-сервер с PHP 5.2.10, MySQL 5.x и Apache 2.x

На моем локальном MAMP / WAMP я могу создать блог без проблем. Однако, когда я тестирую его с живого сервера, я больше не могу создать новое сообщение в блоге, и перенаправление на страницу администратора страницы создания сообщения выдает ошибку magento 404.

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

Спасибо.

Программист

1 Ответ

6 голосов
/ 19 сентября 2009

Сначала ругань, потом некоторая помощь, потому что так катится StackOverflow. Если вы действительно не знакомы с соглашениями Magento, скорее всего, вы не изменили достаточно правильных вещей.

  1. Прочтите о контроллере distach в Magento и попробуйте отслеживая его ход

  2. Итак, прочитав, вы теперь знаете, что ваше имя здесь "vblog_admin". Загружаются ли ЛЮБЫЕ страницы с этим именем? Если нет, проверьте раздел настроенного вами модуля

  3. Ваше имя контроллера - manage_vblog, что означает, что в настроенном модуле у вас должен быть контроллер в следующем месте: ModuleName/controllers/Manage/Vblog.php.

  4. Убедившись, что контроллер установлен, убедитесь, что на нем есть метод newAction.

Если какой-либо из вышеперечисленных шагов не пройден, magento выдаст вам 404. Наконец, в

app/code/core/Mage/Core/Controller/Varien/Router/Standard.php

Поиск текста getControllerFileName. Именно здесь ваш контроллер получает свое имя, а также общую область системы, где Magento решает, есть ли у него законный запрос или нет.

Обновление: Исходя из файла, представленного ниже (и личного общения), похоже, что именно ваши соглашения об именах вызывают проблему. Magento чрезвычайно строго придерживается соглашения о присвоении имен верблюжьих кейсов

VBlog 

должно быть

Vblog

во всех экземплярах классов и имен файлов. В то время как сам PHP не заботится о case в именах классов, серверы msot linux ДЕЛАЮТ case о case. Magento не может найти ваш файл класса контроллера из-за этого, и поэтому вы получаете 404.

...