pagina delle recensioni Disattiva
-
16-10-2019 - |
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!
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:
-
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à .
-
In questo file, aspetto per il gestore
<review_product_list>
-
In questo gestore, look per
<reference name="head">
-
Poi basta aggiungere la riga di codice di seguito tra il
<reference name="head">
e</reference>
. Sarà sovrascrivere le impostazioni generali robot perNOINDEX, FOLLOW
Codice da aggiungere nella sezione:
<action method="setRobots"><value>NOINDEX,FOLLOW</value></action>
-
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" />
-
Google e altri robot di indicizzazione ne terrà conto nella loro ricerca per indicizzazione.