Toujours des problèmes de rewriting
9 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- fab27
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Déc 2004
Toujours des problèmes de rewriting
Bonjour tout le monde,
J'ai toujours un problème d'url rewriting.
je m'explique
j'ai plusieurs categories et sous catégorie sur mon site.
avant les urls était du type
/monsite/index.php?cpath=45_21_85
le cpath ici represente la catégorie 45 puis sous catégories 21 et sous sous catégories 85.
maintenant j'ai ceci
/monsite/nom-categorie-45/nom-categorie-21/nom-categorie-85
tous marche trés bien. Et comme vous pouvez le voir j'utilise le - comme sépareteur
Mais voila le HIC.
si l'une de mes catégories posséde un - et bien elle n'est plus detecter correctement et je retourne sur l'index du site. Et j'ai le même problème avec tout les caractéres spéciaux comme &()' etc...
pour netoyer les urls j'utilise cette fonction
Donc ma question est simple
Comment puis je faire pour qu'une fois les urls nettoyers tout fonctionne. Et comment faire pour que si l'une de mes rubriques contient un - faire en sorte que cela fonctionne.
SVP.... J'ai besoin d'un grand coup de pouce...je galére avec cela depuis des mois.
Merci d'avance
++
fab
J'ai toujours un problème d'url rewriting.
je m'explique
j'ai plusieurs categories et sous catégorie sur mon site.
avant les urls était du type
/monsite/index.php?cpath=45_21_85
le cpath ici represente la catégorie 45 puis sous catégories 21 et sous sous catégories 85.
maintenant j'ai ceci
/monsite/nom-categorie-45/nom-categorie-21/nom-categorie-85
tous marche trés bien. Et comme vous pouvez le voir j'utilise le - comme sépareteur
Mais voila le HIC.
si l'une de mes catégories posséde un - et bien elle n'est plus detecter correctement et je retourne sur l'index du site. Et j'ai le même problème avec tout les caractéres spéciaux comme &()' etc...
pour netoyer les urls j'utilise cette fonction
- Code: Tout sélectionner
function mrpropre($chaine){
$tofind = " ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ()[]'~$&%*@ç!?;,:/\^¨€{}|+-<>";
$replac = "-AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn---------------------E-------";
$mrpropre =(strtr($chaine,$tofind,$replac));
$mrpropre = strtolower($mrpropre);
$mrpropre = ereg_replace("\"","-", $mrpropre);
$mrpropre = ereg_replace("[-]{2,}", "-", $mrpropre);
return $mrpropre;
}
Donc ma question est simple
SVP.... J'ai besoin d'un grand coup de pouce...je galére avec cela depuis des mois.
Merci d'avance
++
fab
- fab27
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Déc 2004
Voici le contenu de mon htaccess
Encore merci
++
fab
- Code: Tout sélectionner
RewriteEngine on
RewriteBase /catalog/
RewriteRule newsletters - [L]
RewriteRule ^catalog$ /catalog/index.php [R=301,L]
RewriteRule ^catalog/$ /catalog/index.php [R=301,L]
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)-([0-9]+)$ /catalog/product_info.php?products_id=$2 [L]
RewriteRule !\.(gif|php|css|jpg|png|ico|pdf|txt|js)$ /catalog/rewrite.php
Encore merci
++
fab
- mf
- WRInaute discret

- Messages: 161
- Inscription: 7 Mai 2003
fab27 a écrit:Voici le contenu de mon htaccess
- Code: Tout sélectionner
RewriteEngine on
RewriteBase /catalog/
RewriteRule newsletters - [L]
RewriteRule ^catalog$ /catalog/index.php [R=301,L]
RewriteRule ^catalog/$ /catalog/index.php [R=301,L]
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)-([0-9]+)$ /catalog/product_info.php?products_id=$2 [L]
RewriteRule !\.(gif|php|css|jpg|png|ico|pdf|txt|js)$ /catalog/rewrite.php
et elle est ou la réécriture pour tes catégories? là je voit rien qui y ressemble
RewriteRule ^/monsite/(.*)-([0-9]+)/(.*)-([0-9]+)/(.*)-([0-9]+)/(.*).html$ /monsite/index.php?cpath=$2_$4_$6 [L]
a voir
- fab27
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Déc 2004
Rewrite de mes catégories et produit
Bien en fait le rewrite sur mon site ce fait à l'aide du fichier rewrite.php.
je peux te donner le code, mais il est un peu gros...
Si tu as le courage de le lire en entier...Je t'en remercie d'avance
++
fab
je peux te donner le code, mais il est un peu gros...
- Code: Tout sélectionner
include('includes/application_top.php');
if ($REQUEST_URI == '/catalog/') {
tep_redirect(tep_href_link(FILENAME_DEFAULT));
}
if ($REQUEST_TYPE == 'SSL') {
$comparison_array = explode('/', HTTPS_SERVER . DIR_WS_HTTPS_CATALOG, 4);
} else {
$comparison_array = explode('/', HTTP_SERVER . DIR_WS_HTTP_CATALOG, 4);
}
$comparison = $comparison_array[3];
$parts = explode('?', str_replace($comparison, '', $REQUEST_URI), 2);
$list = explode('/', preg_replace(array('#^/#', '#/$#'), '', $parts[0]));
if (sizeof($parts) == 2) {
$parameters = explode('&', $parts[1]);
foreach ($parameters as $pair) {
$pieces = explode('=', $pair);
$HTTP_GET_VARS[$pieces[0]] = $pieces[1];
}
}
$current_category_id = 0;
$cPath_array = array();
$count = 0;
foreach ($list as $piece_encoded) {
$count++;
$piece = urldecode(preg_replace(array('/[-]/', '/%20/'), array(' ', '%2F'),$piece_encoded));
if ($piece == 'catalog') {
continue;
}
$query_string = "select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name='" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'";
$category_query = tep_db_query("select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name like '" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'");
if ($category_array = tep_db_fetch_array($category_query)) {
$cPath_array[]= $category_array['categories_id'];
$breadcrumb->add(mrpropre($piece), tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array)));
$current_category_id = $category_array['categories_id'];
} else {
if ($current_category_id != '0') {
$parent_where_string = " and p2c.categories_id='" . (int)$current_category_id . "'";
} else {
$parent_where_string = '';
}
$product_query = tep_db_query("select pd.products_id from products_description pd, products_to_categories p2c, products p where p.products_id = pd.products_id and p.products_status = '1' and pd.products_id=p2c.products_id and pd.products_name='" . tep_db_input($piece) . "'" . $parent_where_string);
if ($product_array = tep_db_fetch_array($product_query)) {
if (sizeof($cPath_array) < 1) {
$cPath = tep_get_product_path($product_array['products_id']);
$cPath_array = explode('_', $cPath);
for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
$categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
if (tep_db_num_rows($categories_query) > 0) {
$categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
} else {
break;
}
}
} else {
$cPath = implode('_', $cPath_array);
}
$breadcrumb->add(mrpropre($piece), tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $product_array['products_id']));
$HTTP_GET_VARS['products_id'] = $product_array['products_id'];
$PHP_SELF_REWRITE = mrpropre(dirname($PHP_SELF)) . '/' . FILENAME_PRODUCT_INFO;
$PHP_SELF = mrpropre($PHP_SELF_REWRITE);
include(FILENAME_PRODUCT_INFO);
exit();
} else {
$manufacturer_query = tep_db_query("select manufacturers_id from manufacturers where manufacturers_name='" . tep_db_input($piece) . "'");
if ($manufacturer_array = tep_db_fetch_array($manufacturer_query)) {
$breadcrumb->add(mrpropre($piece), tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array) . 'manufacturers_id=' . (int)$manufacturers_array['manufacturers_id']));
$HTTP_GET_VARS['manufacturers_id'] = $manufacturer_array['manufacturers_id'];
if ($count == sizeof($list)) {
$HTTP_GET_VARS['filter_id'] = $current_category_id;
$PHP_SELF_REWRITE = mrpropre(dirname($PHP_SELF)) . '/' . FILENAME_DEFAULT;
$PHP_SELF = mrpropre($PHP_SELF_REWRITE);
$cPath = implode('_', $cPath_array);
$HTTP_GET_VARS['cPath'] = $cPath;
include(FILENAME_DEFAULT);
exit();
}
} else {
reset($list);
/* tep_redirect(tep_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . implode('+', $list))); */
}
}
}
}
$cPath = implode('_', $cPath_array);
$HTTP_GET_VARS['cPath'] = $cPath;
$PHP_SELF_REWRITE = mrpropre(dirname($PHP_SELF)) . '/' . FILENAME_DEFAULT;
$PHP_SELF = $PHP_SELF_REWRITE;
include(FILENAME_DEFAULT);
?>
Si tu as le courage de le lire en entier...Je t'en remercie d'avance
++
fab
- mf
- WRInaute discret

- Messages: 161
- Inscription: 7 Mai 2003
non désolé j'ai pas le courrage et le temp de décodé
mais y pas besoin de tous cela,
tu génére ton url propre dans le html
/monsite/nom-categorie-45/nom-categorie-21/nom-categorie-85/???
il manque quelque chose a la fin non?
puis la ligne (cf message précedent) dans le htaccess et le tour est joué
mais y pas besoin de tous cela,
tu génére ton url propre dans le html
/monsite/nom-categorie-45/nom-categorie-21/nom-categorie-85/???
il manque quelque chose a la fin non?
puis la ligne (cf message précedent) dans le htaccess et le tour est joué
- ola
- WRInaute discret

- Messages: 54
- Inscription: 9 Déc 2004
Ben non
...comment tu récupères les variables sinon...
as tu essayé :
RewriteRule ^([A-Za-z0-9-])-([0-9]+)$ /catalog/product_info.php?products_id=$2
ou
RewriteRule ^([A-Za-z0-9--])-([0-9]+)$ /catalog/product_info.php?products_id=$2
le caractère "-" ne sera compris qu'en fin d'ensemble je pense...
dis moi si ca marche...
ola
as tu essayé :
RewriteRule ^([A-Za-z0-9-])-([0-9]+)$ /catalog/product_info.php?products_id=$2
ou
RewriteRule ^([A-Za-z0-9--])-([0-9]+)$ /catalog/product_info.php?products_id=$2
le caractère "-" ne sera compris qu'en fin d'ensemble je pense...
dis moi si ca marche...
ola
- fab27
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Déc 2004
Pour la fiche produit, je n'ai plus aucun problème qu'elle que soit l'ecriture du produit. car si j'ai un produit toto avec un id=28
j'aurai mon url comme ceci
/mon_site/nom_categorie_1/non_sous_categorie_1a/toto-28
comme cela j'arrive a retrouver quelques soit l'écriture le produit toto.
mais pour les rubriques je ne peux pas rajouter d'id car cela n'irais pas sur l'url.
Donc si une catégorie détient un - et bien ca plante.
Encore merci
++
fab
j'aurai mon url comme ceci
/mon_site/nom_categorie_1/non_sous_categorie_1a/toto-28
comme cela j'arrive a retrouver quelques soit l'écriture le produit toto.
mais pour les rubriques je ne peux pas rajouter d'id car cela n'irais pas sur l'url.
Donc si une catégorie détient un - et bien ca plante.
Encore merci
++
fab
9 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Toujours des problèmes avec IE
- url rewriting (problèmes)
- [réglé]Problèmes d'url rewriting
- phpmyannuaire problemes avec url rewriting
- Rewriting et problèmes avec certains moteurs
- URL Rewriting à plusieurs variables / problèmes de tirets
- Url rewriting marche mais il y a d'autres problémes ...
- URL rewriting et les problèmes existentiels d'un débutant : acte #1
- Anciennes pages toujours dans google (url rewriting)
- Toujours ces règles rewriting...J'y suis presque ! ;-)
- Analyse de similarité textuelle
Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
