Domanda

Ho aggiunto con successo "lista recensioni" e "revisione modulo add" alla pagina del prodotto.

Ora voglio solo disabilitare completamente la pagina recensioni (http://example.com/review/...)? (Così i motori di ricerca non troverà accidentalmente e strisciare esso, noindex e canonical non sono un'opzione).

Grazie per l'aiuto!

È stato utile?

Soluzione

Ci sono diversi percorsi nel modulo Mage_Reviews, e probabilmente non si vuole disabilitare tutti. Ecco un elenco raccolte da Mage / Recensioni / controller / :

  • review/customer/(index) - conto cliente vista della loro recensioni
  • review/customer/view/id/{review id} - conto cliente vista di una singola recensione
  • review/product/list/id/{product id}/[(category)/{category id}] - Elenco delle recensioni per un prodotto
  • review/product/post - azione processo per la pubblicazione di una recensione
  • review/product/view/id/{review id} - vista individuale per una singola recensione del prodotto -? Keep

Grassetto = sentieri che si fanno / potrebbe desiderare di mappare e reindirizzamento, il corsivo = percorsi di tenere.

considerando che è il contenuto che può e deve essere utilizzato per le richieste di revisione, questo sembra migliore, utilizzare un osservatore. Per catturare il percorso review/product/list l'osservatore dovrebbe osservare l'evento controller_action_predispatch_review_product_list nell'area dell'evento frontend e impostare un reindirizzamento HTTP 301 alla pagina del prodotto. La 301 sarà ovviamente essere utilizzato dai motori di ricerca per aggiornare i collegamenti e trasferire alcuni dei succo di collegamento.

<frontend>
    <events>
        <controller_action_predispatch_review_product_list>
            <observers>
                <your_module>
                    <class>your_module/observer</class>
                    <method>redirectReviewListToProductView</method>
                </your_module>
            </observers>
        </controller_action_predispatch_review_product_list>
    </events>
</frontend>

E nel osservatore del modulo, il metodo di reindirizzamento:

/**
 * Redirect requests for review page to product page,
 * which now contains review contents. Relies on the
 * accommodation of request object redirect in the
 * elseif condition which is present in
 * Mage_Review_ProductController::listAction().
 *
 * Observes
 * controller_action_predispatch_review_product_list
 *
 * @see Mage_Review_ProductController::listAction()
 * @see Mage_Core_Controller_Varien_Action::preDispatch()
 *
 * @param Varien_Event_Observer $observer
 */
public function redirectReviewListToProductView(Varien_Event_Observer $observer)
{
    $request = $observer->getControllerAction()->getRequest();
    /* @var $request Mage_Core_Controller_Request_Http */

    //log to custom logfile
    //Mage::log($request->getServer('HTTP_REFERER').': '.$request->getPathInfo(), Zend_Log::INFO, 'review_redirects.log',true);

    //$toUrl will be empty if missing id param or invalid product ID.
    $toUrl = Mage::getModel('catalog/product')->load($request->getParam('id'))->getProductUrl();

    //$request->_forward() is protected (no idea why), so implement noroute (404) manually.
    if (!$toUrl) {
        $request->initForward();
        $request->setActionName('noroute')->setDispatched(false);
    }
    else {
        //review/product/list accommodates redirects, so this should work
        $observer->getControllerAction()->getResponse()->setRedirect($toUrl);
        $request->setParam('id',false);
    }
}

Altri suggerimenti

Per problemi Evita di contenuti duplicati, è possibile personalizzare il NOINDEX Direttiva sui robot per tutte le pagine di questo tipo: http://www.yourdomain.com/review/product/list/id/1 aby modifica il file review.xml (Magento testato 1.9 almeno)

Ecco il modo per farlo:

  1. Copiare il file /app/design/frontend/base/default/layout/review.xml per /app/design/frontend/yourthemepath/layout/review.xml se non esiste nel vostro tema già .

  2. In questo file, aspetto per il gestore <review_product_list>

  3. In questo gestore, look per <reference name="head">

  4. Poi basta aggiungere la riga di codice di seguito tra il <reference name="head"> e </reference>. Sarà sovrascrivere le impostazioni generali robot per NOINDEX, FOLLOW

Codice da aggiungere nella sezione: <action method="setRobots"><value>NOINDEX,FOLLOW</value></action>

  1. aggiornamento della cache di Magento, e il look per il valore NOINDEX,FOLLOW aggiornato nel codice sorgente della pagina / recensione / prodotto / list / id / 1. Esso dovrebbe darvi qualcosa di simile sotto <head>: <meta name="robots" content="INDEX,FOLLOW" />

  2. Google e altri robot di indicizzazione ne terrà conto nella loro ricerca per indicizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top