2013-09-09 2 views
0

У меня возникла просьба изменить URL-адрес модуля.Magento - Пользовательский модуль Url

Для примера скажем, URL-адрес является www.example.com/world

мне нужно URL быть www.example.com/hello/world

Я знаю, что в модули конфигурации XML вы может изменить узел на что угодно (при условии, что это уникальный), но не позволяет PREPEND/привет/

<frontend> 
    <routers> 
     <anexample> 
      <use>standard</use> 
      <args> 
       <module>An_Example</module> 
       <frontName>hello/world</frontName> 
      </args> 
     </anexample> 
    </routers> 
</frontend> 

кто-нибудь есть идеи, как это можно сделать? Какой-то примерный код или даже точка в правильном направлении были бы оценены!

Извините, если это недостаточно подробно, я буду рад опубликовать больше своего кода, если потребуется.

Заранее спасибо.

ответ

0

Это было довольно просто в конце.Вместо того, чтобы идти к хлопоты создания переписывает для этого я просто изменил мою frontname на «привет», затем создал контроллер под названием «worldController»

Тогда в моем IndexController я просто поставить редирект */мира

+0

http://magento.stackexchange.com/a/17029/4426 –

0

Пожалуйста, обратитесь к следующей статье Аллана Буря о Magento перепишет

http://alanstorm.com/magento_dispatch_rewrites_intro

+0

К сожалению, это не так много помощи меня. Я уже пробовал использовать и в xml, чтобы немного повлиять. Часто приводит к 404 или не перенаправляет вообще. Я уверен, что я просто пропустил что-то очевидное, но я смотрел на него так долго, что все это превратилось в тарабарщину. – Frank

0

здесь я могу дать вам идею, чтобы достигнуть вашего решения будет уверено, поможет вам

<?xml version="1.0"?> 
<config> 
    <global> 
    <rewrite> 
     <some_unique_name_to_identify_this_rewrite> 
     <from><![CDATA[#^/from_this/#]]></from> 
     <to>/to_this/</to> 
     </some_unique_name_to_identify_this_rewrite> 
    </rewrite> 
</global> 
</config> 

И если вы хочу сделать переписку URL с функциональностью администратора, вы можете пойти бросить this link

Также вы хотите, чтобы ieve может быть выполнено с помощью Custom Url Rewrite. Например:

request path: hello/world 

target path: 'world' 

Таким образом, вы назначаете систему переписывания своей начальной точки.

надеюсь, что это будет уверен, что поможет вам

3

Вы можете добавить переписывает в URL Rewrite менеджера Magento в. Не проверял следующий код. Но надеюсь, что это поможет.

Mage::getModel('core/url_rewrite') 
->setIsSystem(0) 
->setStoreId($storeId) 
->setOptions('RP') 
->setIdPath('index.php?cat=c' . $categoryId . '_' . $this->strip($data['name']) . '.html') 
->setTargetPath($categoryModel->getUrlPath() . '.html')// Put the actual path 
->setRequestPath('index.php?cat=c' . $categoryId . '_' . $this->strip($data['name']) . '.html') // put the path you want to display 
->save(); 
0

путь доступа контроллера пользовательского модуля, как пользовательский HTML URL Ссылка

Say http://domain.com/index.php/customwallpaper/index/create/

будет переписан в

http://domain.com/index.php/fotomural-personalizado.html

Вставка ниже данных в core_url_rewrite таблицы для URL Rewrite

Mage::getModel('core/url_rewrite') 
    ->setStoreId(1) 
    ->setIdPath('customwallpaper') 
    ->setRequestPath('fotomural-personalizado.html') 
    ->setTargetPath('customwallpaper/index/create') // Put the actual Controller path 
    ->setIsSystem(1) 
    ->save(); 

-ИЛИ-

Выполнить ниже SQL-запрос

INSERT INTO `core_url_rewrite` 
(`url_rewrite_id`, `store_id`, `id_path`, `request_path`, `target_path`, `is_system`, `options`, `description`, `category_id`, `product_id`) 
VALUES ('7', '1', 'customwallpaper', 'fotomural-personalizado.html', 'customwallpaper/index/create', '1', NULL, NULL, NULL, NULL);