newbie qui galere pour un truc bete

Nouveau WRInaute
Bonjour à tous,

ca va?

Je cherche à faire des redirection 301 poru des URL du type

www.monurl.fr/machin vers www.monurl.fr/bidul

c'est facile je rajoute ca :

RedirectPermanent /machin /bidul

\o/

Par contre je ne veux pas que www.monurl.fr/machin/truc.html soit modifié
et la ca redirige vers www.monurl.fr/bidul/truc.html (c'est logique)

comment puis je modifier ma ligne pour que seul machin soit redirigé et pas tout ce qui est "dedans"


MErci beaucoup
 
WRInaute discret
Le but de ta démarche est assez étrange et pas terrible niveau référencement mais bon...

Tu dois passer par une condition de réécriture pour voir si on tente d'accéder à "machin" seul ou à une sous-arborescence:
Code:
RewriteCond   %{REQUEST_URI}     !^machin/(.+)$
RewriteRule    ^machin$                bidul [R=301,L]

Ceci devrait fonctionner, à tester.

Par contre, je me demande si ça ne devrait pas fonctionner avec simplement ceci:
Code:
RewriteRule    ^machin$                bidul [R=301,L]

car les urls de type "machin/......" ne matcheraient pas la règle ci-dessus (à tester également).
 
Nouveau WRInaute
Je viens de tester rapidement,

et ca ne fonctionne pas .
je vais reprendre ca demain a tete reposé, je dois passer a coté de quelque chose tout bete.

MErci pour la réponse.
 
Nouveau WRInaute
J'ai fait plusieurs test dans le htaccess, mais seul les lignes de type RedirectPermanent focntionnent.. je dois passer a coté de quelque chose.


Code:
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# Images
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^.*$ - [NC,L]
RewriteCond %{HTTP_HOST} ^monurl.com$
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again


RewriteCond   %{REQUEST_URI}     !^machin/(.+)$
RewriteRule    ^machin$                bidul [R=301,L]

Voici mon .htaccess, c 'est un site prestashop. et a propos de ma problématique voici le soucis:

imaginons que j'ai 3 produits (chaise, table et porte) dans 1 category (meuble)



l'URL de mes produits est de la forme :



monsite.fr/meuble/97-chaise.htm

monsite.fr/meuble/98-table.htm

monsite.fr/meuble/99-porte.htm



et le lien de ma category est



monsite.fr/13-meuble





Ce qui me gene c'est que google (ou un visiteur geek) en arrivant sur une page produit va vouloir remonter l'arborescence en allant directement sur



monsite.fr/meuble



et la... bim Erreur 404 . je comprends l'interet de l'id de la category, mais j'aurais pensé un ptit 301 histoire de ne perdre personne.


du coup je veux faire des redirection de monsite.fr/meuble vers monsite.fr/13-meuble (j'ai 5 catégory, donc c'est faisable)


Merci
 
WRInaute discret
Dans ce cas, en te lisant, je pense que tu devrais revoir ta stratégie de réécriture.
Tu devrais plutôt avoir "13-meuble" ou "meuble" partout.
Comme ça, plus de problème d'arborescence.

Au niveau du htaccess, le code que je t'ai donné est à placer avant "</IfModule>" et non après comme tu l'as fait.
Attention aussi que ton navigateur a peut-être mis en cache cette redirection permanente. Vide le avant de tester à nouveau.
 
Discussions similaires
Haut