Автоматичне переадресація 301 для інвалідів


14

Я намагаюся додати автоматичні переадресації для користувальницького типу продукту (події) в Magento 1.7. Коли дата події минула, я позначаю продукт відключеним, щоб користувачі не перейшли на неправильну сторінку, а також я хочу перенаправити на список майбутніх класів, щоб у мене не було безлічі 404 помилок сайт.

Чи є спосіб прослухати подію для отримання продукту, куди 404 би кинули, чи я мушу десь шукати безкоштовне розширення для цього? Я деякий час шукав і не бачив розширень, які добре працюють.

Відповіді:


17

Ласкаво просимо до Magento.StackExchange!

На жаль, не існує модуля, який би це зробив для вас.

Я б настійно рекомендую вам переглянути це як варіант. Ваші користувачі не дурні (як би не дурно вони себе поводили) - багато-багато років аналіз електронної комерції показав мені, що майже 80% часу користувачі, що досягають 404, потраплять на панель пошуку на сайті протягом декількох секунд. Докладіть зусиль для налаштування пошуку на веб-сайті з кращою категоризацією (читайте: начинка ключових слів).

Індекси Google не назавжди. Якщо ви боїтеся 404-х, подумайте про розширення сторінки 404. Збільште свій потенціал конверсії, запропонувавши купон зі знижкою на 5-10% тим, хто незручно натискає на 404. Або ще краще, не відключайте сторінки продуктів. Швидше, відключіть можливість придбання (наприклад, встановлено як немає на складі) та надайте статичний блок / посилання, що посилається на відповідну сторінку / категорію.

Мені все одно, просто дайте мені коди, оскільки інтернети:

На найпростішому кодуванні модуля з спостерігачем, який вирішить це для вас, є дрібницею:

Призначення події в config.xml:

<global>
    <events>
        <controller_action_postdispatch_catalog_product_view>
            <observers>
                <yourmodule_capcpv>
                    <class>YourCompany_YourModule_Model_Observer</class>
                    <method>catalogProductViewPostdispatch</method>
                </yourmodule_capcpv>
            </observers>
        </controller_action_postdispatch_catalog_product_view>
    </events>
</global>

app / code / local / YourCompany / YourModule / Модель / Observer.php:

<?php

class YourCompany_YourModule_Model_Observer
{
    public function catalogProductViewPostdispatch($observer)
    {
        $controller = $observer->getEvent()->getControllerAction();

        $product = Mage::registry('current_product');
        if($product->getStatus()!=Mage_Catalog_Model_Product_Status::STATUS_ENABLED){
            $action->getResponse()->setRedirect(/* your redirect URL here with Mage::getUrl() */);
        }
    }
}

1
Спасибі philwinkle. Я спробую переконати клієнта піти з вашими першими пропозиціями. Я згоден, що це, мабуть, погана форма викрадення 404
kayluhb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.