All posts tagged configuration

@Note: la solution ci dessous n’est pas 100% compatible avec les modules tiers tel que GoogleBase. J’y travaille encore, vous pouvez cependant analyser la note de bas de page pour aider à trouver une solution propre. Cependant si vous êtes très pressé, voici une autre solution

Pour ceux qui rencontrent des difficultés avec leur backend de Magento et qui ont personalisé l’accès (exple: http://www.magento.com/backend/) grâce au fichier /app/etc/local.xml. Ils rencontreront probablement l’affichage d’une page 404 error – Page Not Found après avoir donné ses informations de login et mot de passe. Cette situation est présente seulement si vous avez activé dans la configuration de Magento, l’option qui force l’ajout du Store Code dans l’URL ( System > Configuration > Web > Url Options > Add Store Code to Urls – YES).

La solution est d’indiquer à Magento que l’on peut utiliser notre URL de backend personnalisé directement et sans prendre en compte le fait que c’est un Store Code. Il suffit pour cela de modifier le fichier local.xml de la manière suivante: {nom_backend_personalisé} = backend dans l’exemple http://www.magento.com/backend/

Ci-dessous un exemple de fichier local.xml:

<config>
 <global>
  ...
  <request>
   <direct_front_name>
    <{backend_name_customized} />
   </direct_front_name>
  </request>
 </global>
 <admin>
  <routers>
   <adminhtml>
    <args>
    <frontName><![CDATA[{nom_backend_personalisé}]]></frontName>
    </args>
    </adminhtml>
    </routers>
 </admin>
</config>

Notez les Tags < {nom_backend_personalisé} / >.
< {nom_backend_personalisé} /> est un tag et non le contenu d’un élément XML.

Remplacez seulement {nom_backend_personnalisé} par backend (par exemple) ou autre.

Ainsi vous pouvez accéder à votre backend personnalisé sans cette erreur 404 pour les modules adminhtml

@developers:

If you want to deep more about this subject, take a look in the file /app/code/core/Mage/Core/Controller/request/Http.php line 148. The problem comes from here.

if ($this->_canBeStoreCodeInUrl()) {
$pathParts = <a href="http://www.php.net/explode">explode</a>('/', <a href="http://www.php.net/ltrim">ltrim</a>($pathInfo, '/'), 2);
$storeCode = $pathParts[0];

if (!$this->isDirectAccessFrontendName($storeCode)) {
	$stores = Mage::app()->getStores(true, true);
	if ($storeCode!=='' && <a href="http://www.php.net/isset">isset</a>($stores[$storeCode])) {
		Mage::app()->setCurrentStore($storeCode);
		$pathInfo = '/'.(<a href="http://www.php.net/isset">isset</a>($pathParts[1]) ? $pathParts[1] : '');
	}
	elseif ($storeCode !== '') {
		$this->setActionName('noRoute');
	}
}
            }

Solution from Frank: Une solution proposée est de fournir une url dans l’action du formulaire.
Le fichier se situe à cet emplacement app/design/adminhtml/default/default/template/login.phtml.
Remplacer les lignes

<form method="post" action="" id="loginForm">

par

<form method="post" action="http://<?php echo $_SERVER['HTTP_HOST']; ?>/admin/admin/" id="loginForm">