Jump to content

Url rwritting personalisé - .htaccess - classes/Link.php - OVH - prestashop v1.1.0.5


Recommended Posts

Salut à vous !
Je suis en train de me pencher sur l'url rewritting d'un prestashop sur un ovh90-plan.
Je rencontre pas mal de problème pour arriver à mes fins.

Au final j'aimerais que mes liens apparaissent comme cela :

article : http://www.monurl.com/bijou/45-monbijou
catégorie : http://www.monurl.com/categorie/78-macategorie
cms : http://www.monurl.com/information/45-monarticleCms

du coup j'ai modifié mon htaccess comme ceci :

# URL rewriting module activation
RewriteEngine on

# make my php5 day !!
AddType x-mapp-php5 .php
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0

# URL rewriting rules
RewriteRule ^jewel/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ product.php?id_product=$1&id_lang=1$3 [L,E]
RewriteRule ^bijou/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ product.php?id_product=$1&id_lang=2$3 [L,E]

RewriteRule ^section/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1&id_lang=1$3 [QSA,L,E]
RewriteRule ^categorie/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1&id_lang=2$3 [QSA,L,E]

RewriteRule ^notice/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1&id_lang=1$3 [QSA,L,E]
RewriteRule ^information/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1&id_lang=2$3 [QSA,L,E]

RewriteRule ^supplier/([0-9]+)-([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^fournisseur/([0-9]+)-([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]

RewriteRule ^manfacturer/([0-9]+)-([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^fabricant/([0-9]+)-([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]

RewriteRule ^contact-us[/]*$ contact-form.php?id_lang=1 [QSA,L,E]
RewriteRule ^contactez-nous[/]*$ contact-form.php?id_lang=2 [QSA,L,E]

RewriteRule ^price-drop[/]*$ prices-drop.php?id_lang=1 [QSA,L,E]
RewriteRule ^promotions[/]*$ prices-drop.php?id_lang=2 [QSA,L,E]

RewriteRule ^new-products[/]*$ new-products.php?id_lang=1 [QSA,L,E]
RewriteRule ^nouveaux-produits[/]*$ new-products.php?id_lang=2 [QSA,L,E]

RewriteRule ^best-sellers[/]*$ best-sales.php?id_lang=1 [QSA,L,E]
RewriteRule ^meilleures-ventes[/]*$ best-sales.php?id_lang=2 [QSA,L,E]

# Catch 404 errors
ErrorDocument 404 /404.php



mais, problèmes :

1. Lorsque l'url rewriting est désactivé dans le BO, et que je rentre "http://www.monurl.com/bijou/45-monbijou" dans mon navigateur, j'arrive sur la page produit correct, mais l'url est remplacé par l'adresse physique : "http://www.monurl.com/bijou/product.php?id_product=45"

2. Du coup j'ai modifié le fichier classes/Link.php pour que les liens soit réécrits de la bonne façon (classes/Link.php-ligne 41) :

    public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL) // fonctionne mieux an gardant cette ligne !!
   {
        if (!isset($this->allow)) $this->allow = 0;
       if (is_object($id_product))
           return ($this->allow == 1)?(__PS_BASE_URI__.'jewel/'.intval($id_product->id).'-'.$id_product->link_rewrite.($id_product->ean13 ? '-'.$id_product->ean13 : '')) : 
           (_PS_USE_SSL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product->id));
       elseif ($alias)
           return ($this->allow == 1)?(__PS_BASE_URI__.'jewel/'.intval($id_product).'-'.$alias.($ean13 ? '-'.$ean13 : '')) : 
           (_PS_USE_SSL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product));
       else
           return _PS_USE_SSL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product);
   }



Du coup, lorsque l'url rewriting est activé dans le BO, et que je rentre "http://www.monurl.com/bijou/45-monbijou" dans mon navigateur, j'arrive sur une page d'erreur de mon navigateur (Firefox) :

Redirection de page incorrecte
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
* La cause de ce problème peut être la désactivation ou le refus des cookies.


Bien évidemment, j'ai vérifié ma gestion des cookies pour firefox (il accepte tout le temps) et j'ai vérifié qu'à l'activation de l'url rewriting dans le BO, mon fichier .htaccess ne soit pas écrasé...

Hypothèse :
J'ai l'impression que mon .htaccess tourne en boucle avec une redirection de prestashop

Conclusion :
Est ce que j'ai fais une erreur dans mon .htaccess ?
Est ce que j'ai fais une erreur dans mon classes/Link.php ?
Est ce que OVH à un truc à voir là dedans ?
Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...