Version complète: sur le forum Webmaster Hub : Osc urlrewriting
Webmaster Hub > Création et exploitation de Sites Internet > E-commerce
michmuch51
Salut les Hubiens,

je viens de mettre en place une boutique sous osc qui n'est pour le moment pas accessible avant que je n'ai tout fixé, mais je galère sur la mise en place d'une contrib pour le rewriting:
contribution rewriting

visiblement elle fonctionne très bien en tout cas mes liens sont réécris de façon sympa, j'ai du modifier le htaccess pour l'adapter à ovh (en rajoutant simplement le nom du répertoire):
CODE
RewriteEngine on
Options +FollowSymLinks

RewriteRule ^(en/.*)$ /monrepertoire/url_rewriting.php?$1 [L]
RewriteRule ^(de/.*)$ /monrepertoire/url_rewriting.php?$1 [L]
RewriteRule ^(es/.*)$ /monrepertoire/url_rewriting.php?$1 [L]
RewriteRule ^(fr/.*)$ /monrepertoire/url_rewriting.php?$1 [L]


comme je vous ai dit les liens sur osc sont de la forme souhaitée:
http://www.monsite/monrepertoire/monnomdecategorie

mais le problème c'est que lorsque je clique sur ces fameux liens ca me redirige vers:
http://www.monsite/monrepertoire/index.php?cPath=12 (par exemple pour la categorie 12) alors que dans le code source ils sont réécris

est ce qu'a votre avis le soucis viens du htaccess ou du fichier url_rewriting.php?

Source de url_rewriting (en espérant que ca rende pas le post indigeste):
CODE
<?php
    require('includes/application_top.php');

    $get_array = explode('/', key($_GET));
    $lang_code = $get_array[0];
    $lang = tep_db_fetch_array(tep_db_query("select languages_id from " . TABLE_LANGUAGES . " where code = '" . tep_db_input($lang_code) . "'"));
    $lang_id = $lang['languages_id'];
    $parent_id = 0;
    
    if (empty($lang_id)) tep_redirect(HTTP_SERVER . DIR_WS_HTTP_CATALOG . FILENAME_DEFAULT);
    
    for ($i=1; $i<sizeof($get_array); $i++) {
    
 if (ereg("(.+)_html$", $get_array[$i], $regs)) { // is a product
 
     $product_name = $regs[1];
     if (ereg("-p([0-9]+)$", $product_name, $regs)) {
   $product_id = $regs[1];
     } else {
   $products_query = tep_db_query("select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" .(int)$parent_id . "'");
   $products_array = array();
   while ($products = tep_db_fetch_array($products_query)) {
       $products_array[] = $products['products_id'];
   }
   foreach ($products_array as $product_id) {
       if ($product_name == tep_url_rewriting_cast(tep_get_products_name($product_id, $lang_id))) {
     // $product_id
     break;
       }
   }
     }
     tep_redirect(HTTP_SERVER . DIR_WS_HTTP_CATALOG . FILENAME_PRODUCT_INFO . '?cPath=' . $cPath . '&products_id=' . $product_id);

 } else { // is a category
    
     if (ereg("-c([0-9]+)$", $get_array[$i], $regs)) {
   $parent_id = $regs[1];
     } else {
   $categories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" .(int)$parent_id . "'");
   $categories_array = array();
   while ($categories = tep_db_fetch_array($categories_query)) {
       $categories_array[] = $categories['categories_id'];
   }
   foreach ($categories_array as $parent_id) {
       if ($get_array[$i] == tep_url_rewriting_cast(tep_get_categories_name($parent_id, $lang_id))) {
     // $parent_id
     break;
       }
   }
     }
     if ($i == 1) $cPath = $parent_id;
     else $cPath .= '_' . $parent_id;
     
 }    
    
    }
    tep_redirect(HTTP_SERVER . DIR_WS_HTTP_CATALOG . FILENAME_DEFAULT . '?cPath=' . $cPath);
?>
Jeanluc
CITATION(michmuch51 @ mercredi 22 mars 2006, 07h02)
le problème c'est que lorsque je clique sur ces fameux liens ca me redirige vers:
http://www.monsite/monrepertoire/index.php?cPath=12 (par exemple pour la categorie 12) alors que dans le code source ils sont réécris

est ce qu'a votre avis le soucis viens du htaccess ou du fichier url_rewriting.php?

Bonjour,

En tout cas, il n'y a aucune redirection dans le .htaccess, juste de la réécriture d'URL.

Jean-Luc
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.