Удалить имя контроллера из URL для моего пользовательского модуля в Magento

0

Я создал свой собственный модуль. В этом я использовал IndexController. Поэтому URL-адрес для меня выглядит как http://192.168.1.25/upload/index.php/capsync/index/api.

Я хочу сократить URL-адрес, например, http://192.168.1.25/upload/index.php/capsync/api.

Я хочу удалить имя контроллера. Я попытался в файле config.xml, но он показывает ошибку 404. Я не знаю, как это исправить. Есть идеи?

  • 0
    Исправлены ошибки форматирования.
Теги:
magento
url-rewriting

3 ответа

2

Попробуйте переписать функцию Magento. Откройте файл config.xml и добавьте ниже код. Он сделает URL http://192.168.1.25/module/index/index/id/5http://192.168.1.25/module/id/5 следующим образом. Измените правило в соответствии с вашими потребностями.

<global>
<rewrite>
<fancy_url>
        <from><![CDATA[/module\/(.*)/]]></from>
        <to><![CDATA[module/index/index/id/$1/]]></to>
            <complete>1</complete>
</fancy_url>
</rewrite>
 ...
  • 0
    <global> <rewrite> <capsync_url> <from> <! [CDATA [/ capsync / api \ / (. *) /]]> </ from> <to> <! [CDATA [capsync / index / api / $ 1 /]]> </ to> <complete> 1 </ complete> </ capsync_url> </ rewrite> Это то, что я пробовал. но показывает ошибку 404. Даже после очистки кеша
  • 0
    Пожалуйста, используйте <fancy_url> вместо <capsync_url>. Если вы получили ошибку 404, посмотрите URL-адрес и внесите изменения в код в соответствии с вашим URL-адресом для достижения ваших целей. Код работает нормально, но вам нужно оптимизировать в соответствии с вашими потребностями. И этот код должен быть похож на его - >> <from> <! [CDATA [/ capsync \ / (. *) /]]> </ From>
Показать ещё 2 комментария
0

Код, который работает для меня, выглядит следующим образом.

<global>
<rewrite>
<fancy_url> 
<from><![CDATA[/capsync\/(.*)/]]></from>
<to><![CDATA[/capsync/index/$1/]]></to>
<complete>1</complete>
</fancy_url>
</rewrite>
0

Наиболее распространенным решением для этого является разделение информации о конечных точках на разные файлы-контроллеры. В вашем примере вы можете изменить имя от IndexController.php на ApiController.php и имя метода от ApiAction() до IndexAction().

  • 0
    Даже когда я попробовал, это показывает ошибку 404. Любое другое решение пожалуйста.
  • 0
    Хм, я думаю, что, возможно, вам нужно иметь IndexController, даже если он ничего не содержит или пустой IndexAction - но не может вспомнить специфику. Также вам необходимо убедиться, что вы очистили все кэши, которые можете найти, прежде чем это покажет какие-либо изменения.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню