Как переписать пользовательский URL-адрес модуля, включая идентификатор, с любым пользовательским URL-адресом в Magento

Я установил storelocator в Magento, который является бесплатным расширением. Но если на него нажать View Details кнопка, открывается storelocator / Индекс / просмотр / ID / 1 /. Для целей SEO, необходимо открыть с слуховой аппарат-центр-в-Нью-Йорк или же слуховой аппарат-центр-в-Чикаго. здесь будет с слуховой аппарат-центр-в а также Нью-Йорк, Чикаго будет приходить динамично. Итак, для этого требования, как переписать этот URL. И где я должен написать переписать код для вышеуказанного требования. Я много пробовал с идентификатором 1 как статическим способом, создавая наблюдатель с помощью события Magento «controller_front_init_routers» с помощью этого сайта https://magento.stackexchange.com/questions/73369/custom-url-for-magento-extension. Он сохраняется в core_url_rewrite и отображается в разделе «Управление перезаписью URL», а также перенаправляет, но перенаправляет страницу 404 «Не найдено». Я не могу понять, почему она перенаправляет страницу 404 «Не найдено» и как ее реализовать и как получить идентификатор storelocator динамическим способом Overserver.

Кроме того, мне также нужно переопределить URL-адрес учетной записи клиента и URL-адрес истории заказов на продажу.
Я не знаю, как переписать URL учетной записи клиента с / Моя-счет / заказ-история вместо / Продажа / заказ / история / а также с / Мой-счет / панель вместо /счет клиента/.Я не могу понять, как реализовать эти требования для дружественных целей SEO. Любая помощь, спасибо.

0

Решение

Вам нужно расширить локатор магазина новым модулем, который зависит от него. Есть множество сообщений о том, как это сделать. Этот модуль должен будет добавить дополнительный атрибут для URL-ключа, например, Нью-Йорк. Также потребуется новый контроллер, который расширяет Storelocator_IndexController, Этот контроллер будет обрабатывать все запросы на магазины. Будет выполнен поиск магазина по ключу URL вместо идентификатора. После этого он продолжит использовать наследуемый код, как и раньше. Конечно, вам придется переопределить и обновить все URL-адреса, чтобы использовать ключ.

Наконец, вам нужно будет переписать правило в config.xml лайк:

<config>
<global>
<rewrite>
<mymodule_storelocatoroverides_view>
<from><![CDATA[#^\/hearing\-aid\-center\-in\-([a-z\-]+)[\/]?$#]]></from>
<to><![CDATA[mymodule/storelocatoroverides/view/id/1/]]></to>
<complete>1</complete>
</mymodule_storelocatoroverides_view>
</rewrite>
</global>
</config>

альтернативно

Как быстрое решение, но ни в коем случае не лучшее решение:

Если у вас есть ограниченное количество магазинов, то вы можете просто добавить правила перезаписи в модуле config.xml (создайте простой плагин) E.g для Нью-Йорка (при условии его ID 1):

<config>
<global>
<rewrite>
<mymodule_storelocatoroverides_newyork>
<from><![CDATA[#^\/hearing\-aid\-center\-in\-new\-york[\/]?$#]]></from>
<to><![CDATA[storelocator/index/view/id/1/]]></to>
<complete>1</complete>
</mymodule_storelocatoroverides_newyork>
</rewrite>
</global>
</config>

Опять же вам придется переопределить выходы Url.

Что касается URL клиента, вы можете использовать тот же подход снова. Так что добавьте переписать в config.xml и замените URL-ссылки, чтобы использовать ваши новые переписывает. Опять же, вам может потребоваться переопределить основной код, чтобы изменить перенаправления.

Надеюсь, это поможет!

0

Другие решения

Других решений пока нет …