Lorsque j'ajoute quelque chose du category
au basket/cart
il me redirige vers le basket/cart
.
Après la recherche, j'ai découvert que je pouvais désactiver cette fonctionnalité dans le système d'administration via
Configuration > Sales | Checkout > After Adding a Product Redirect to Shopping Cart
Il redirige maintenant vers la page d'accueil. Je ne sais pas si c'est un bug dans la redirection?
Réponses:
Si vous regardez dans le contrôleur du chariot,
app/code/core/Mage/Checkout/controllers/CartController.php
vous trouverez la fonction_goBack
. C'est là que l'URL de retour est décidée par Magento.La section que vous recherchez est l'appel à
_getRefererUrl
cela se produit lorsque vous ne définissez pas l'URL de retour en tant que paramètre et n'utilisez pas l'option de redirection vers le panier par défaut.À l'intérieur de la fonction,
_getRefererUrl
l'URL de référence est vérifiée pour voir s'il s'agit d'une URL interne, lorsqu'elle n'est pas interne que l'URL de base est utilisée.Je dirais que votre URL de référence est externe ou qu'il y a un problème avec la vérification.
Jetez un œil à
Mage_Core_Controller_Varien_Action::_isUrlInternal
déboguer si l'URL est interne ou non.Le problème était que _isUrlInternal échouait en raison du port dans l'URL de base
la source
En plus de la réponse de David-Manners, vous pouvez également avoir des problèmes avec votre
web/unsecure/base_url
&web/secure/base_url
être correctement configuré sans ports - mais votre application réelle vhost (apache / nginx) écoute sur un port autre que 80/443, par exemple lors de l'exécution derrière du vernis.Cela se traduira par
\Mage_Core_Helper_Url::getCurrentUrl
, utilisé par exemple pour ajouter les paramètres de requête encodés en base64 - décodés et utilisés en_getRefererUrl
ayant le port «non par défaut» dans le cadre de l'URL. (par exemple http://www.domain.com:81/your-url.html )En conséquence,
Mage_Core_Controller_Varien_Action::_isUrlInternal
renvoie faux ...la source
Essayez de définir votre
web/unsecure/base_url
&web/secure/base_url
avec127.0.0.1
à la place delocalhost
. Pour moi, cela a fonctionné.la source