Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/10/2010, à 23:38

Ubutux

URL Rewriting : REGEX n'est pas mon ami...

Bonsoir les tux !

Voila un petit problème de ré-écriture d'url classique, mais comme je suis une quiche avec REGEX je viens vous demander vôtre aide... smile

Voila comment ont été définie les règles dans le .htaccess :

RewriteRule ^(.*),0,(.*).html$ index.php?cPath=$2&%{QUERY_STRING} 

RewriteRule ^(.*),1,(.*),(.*).html$ product_info.php?cPath=$2&products_id=$3&%{QUERY_STRING}

Je ne suis pas à l'origine du site donc je ne sais pas exactement à quoi ressemblent les URL sans rewrite. La première ligne correspond aux catégories et la deuxième à l'URL du produit.

Déjà je pense que les règles ne vont pas car je peux écrire n'importe quoi dans l'URL avant $2 il me sort quand même la page....

Ensuite mon problème est que j'ai certaines url contenant des sessions :

ex: /mon-url.html?osCsid=pdrrhqiegjxfubm

Elles se mettent un peu partout même après index.php

Bref, je ne vois absolument pas comment ré-écrire les règles pour les virer... j'avais songé à un truc du genre (pour celles qui suivent l'index.php) :

RewriteRule ^index-([0-9] [a-z]+).html$  index.php?osCsid=$1 [L]

Oui je sais j'en touche pas une en expressions régulières, c'est pour ça que je viens vous voir.... big_smile

Une idée ?


Cordialement Ubutux,
========================
Mon petit blog friendly froggy, mon site de cours de droit et mon agence web

Hors ligne

#2 Le 07/10/2010, à 13:34

Okom3pom

Re : URL Rewriting : REGEX n'est pas mon ami...

Ce n'est pas au niveau des règles mais dans l'admin de ton oscommerce.

Pour éviter les sessions du type &osCsid=59e75e142448b463d997f8b0a0861c4a, il suffit de déclarer l'utilisation de force des cookies et de mettre les sessions sur false dans la partie admin. ( admin configuration session)

http://www.oscommerce-fr.info/forum/lof … 36518.html

Sur mon oscommerce j'ai ultimate seo url d'installé et je n'ai pas eu besoin de faire les manipulations citées.

Dernière modification par Okom3pom (Le 07/10/2010, à 13:55)


Le plaisir de découvrir.

Hors ligne

#3 Le 08/10/2010, à 10:12

Ubutux

Re : URL Rewriting : REGEX n'est pas mon ami...

Salut Okom3pom et merci pour ta réponse !

En fait ce que tu dis ça déjà été fait. Le problème est que les url déjà dans le cache de Google fonctionnent toujours.

Donc à l'origine nous avions fait des redirections permanente dans le .htaccess, mais pour une raison qui m'échappent elles ne fonctionnent pas...

Mais ta remarque est très juste si les url ne sont plus générées nous devrions pas avoir à les ré-écrire.


Cordialement Ubutux,
========================
Mon petit blog friendly froggy, mon site de cours de droit et mon agence web

Hors ligne

#4 Le 08/10/2010, à 11:10

Okom3pom

Re : URL Rewriting : REGEX n'est pas mon ami...

Je viens de faire un recherche dans google de mon site et seulement une ou deux url on bien
osCsid=70da597c62e84ca5f02cb736884f6

Normalement google devrait les enlever quand il repassera sur la page.

Je ne sais pas l'impact exacte mais tu pourrais faire ceci pour google :

if( $_GET['osCsid'] ) {

header("Status: 301 Moved Permanently", false, 301);
header("Ton url sans le osCsid");
exit();

}

301 Moved Permanently : Document déplacé de façon permanente

L’adresse d’origine doit être totalement remplacée par l’adresse cible. La page conserve son "PageRank" et sa place dans les résultats des moteurs de recherche (sauf si son contenu a changé).

3pom

Dernière modification par Okom3pom (Le 08/10/2010, à 11:17)


Le plaisir de découvrir.

Hors ligne

#5 Le 12/10/2010, à 15:02

Ubutux

Re : URL Rewriting : REGEX n'est pas mon ami...

Bonjour

Merci pour ta réponse Okom3pom, malheureusement je n'ai accès qu'au htaccess

En fait la question n'est pas la réécriture car le module qui générait des osCsid a été désactivé, or on ne peux pas réécrire quelque chose qui n'existe pas...

Je crois que c'est juste une question de redirection, mais pour une raison que j'ignore elles ne fonctionnent pas.

Voici le .htaccess :

<IfModule mod_setenvif.c>
  <IfDefine SSL>
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
  </IfDefine>
</IfModule>

ErrorDocument 404 /404.php

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# index.php to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]



RewriteRule ^(.*),0,(.*).html$ index.php?cPath=$2&%{QUERY_STRING} 
RewriteRule ^(.*),1,(.*),(.*).html$ product_info.php?cPath=$2&products_id=$3&%{QUERY_STRING}

RedirectPermanent    /ACCESSOIRES-AUTO/Feux-Avants/PEUGEOT/Peugeot-207-06-Feux-Avants-Angel-Eyes-LED-s,1,25_737_386_367,10775.html?osCsid=pdrrhqiegjxfubm http://www.bc-elec.com/ACCESSOIRES-AUTO/Feux-Avants/PEUGEOT/Peugeot-207-06-Feux-Avants-Angel-Eyes-LED-s,1,25_737_386_367,10775.html

Dernière modification par Ubutux (Le 12/10/2010, à 15:03)


Cordialement Ubutux,
========================
Mon petit blog friendly froggy, mon site de cours de droit et mon agence web

Hors ligne