Rediriger une page contenant un caractère spécifique vers une autre

Discussion dans 'URL Rewriting et .htaccess' créé par 20cents, 27 Septembre 2013.

  1. 20cents
    20cents Nouveau WRInaute
    Inscrit:
    20 Novembre 2007
    Messages:
    32
    J'aime reçus:
    0
    Bonjour à tous,

    Alors voilà le soucis, j'ai deux pages, la première est comme ceci :
    http://www.monsite.fr/boutique/produits/titre-de-mon-produit/

    La seconde page est comme ceci :
    http://www.monsite.fr/boutique/produits/titre-de-mon-produit-pdf/

    Et je voudrais que toutes les URL content "-pdf" redirige directement vers le lien sans "-pdf" qui est une page bien distincte...

    Est-ce possible ? Si oui comment faire ?

    Autre chose, je veux que tous les liens contenant "-pdf" ne soit pas indexer, j'ai fait comme ceci dans robots.txt : Disallow: /boutique/produits/*-pdf$, est-ce correct ?

    Un grand merci !
     
  2. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Bien sur que c'est possible, tout est possible ! :)

    Peut-être, honnêtement je ne sais pas car j'utilise très peu (voir pas du tout) robots.txt.
    Oublie ça et utilise plutôt ceci dans ton htaccess:

    Code:
    RewriteCond 	%{REQUEST_FILENAME} 	!-d
    RewriteCond 	%{REQUEST_FILENAME} 	!-f
    RewriteRule 	^(.*)/(.*)-pdf/$ 	 	$1/$2/? [R=301,L]
    
    Avec ceci, tu fais d'une pierre deux coups: tu rediriges les urls avec "-pdf" vers les urls sans "-pdf" et tu interdis donc l'accès aux urls "-pdf"

    EDIT: pour éviter de vérifier que ce n'est pas un répertoire ou un fichier existant à chaque vérification de règle, tu peux également utiliser cette manière moins générique mais parfaite pour ton cas:

    Code:
    RewriteRule 	^boutique/produits/(.+)-pdf/$ 	boutique/produits/$1/? [R=301,L]
    
     
  3. 20cents
    20cents Nouveau WRInaute
    Inscrit:
    20 Novembre 2007
    Messages:
    32
    J'aime reçus:
    0
    Merci beaucoup ! Malheureusement aucune des deux propositions ne semble fonctionner...
    J'ai pour l'instant ceci :

    Code:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteRule ^boutique/produits/(.+)-pdf/$ boutique/produits/$1/? [R=301,L]
    </IfModule>
    
    Je vois pas trop ou est le soucis... Sur chrome, j'obient ceci si je tape une url avec "-pdf" :
    http://www.monsite.fr/customers/d/9/0/monsite.fr/httpd.www/boutique/pr ... e-pouvoir/

    Il semble bien avoir retiré le -pdf, mais je vois ce que customers/d/9/0/... vient faire ici !

    En tout ca un grand merci pour ton aide !
     
  4. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    C'est en effet très étrange mais je vois déjà plusieurs erreurs dans ton htaccess.

    Code:
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    ------> RewriteRule . /index.php [L] <------
    RewriteRule ^boutique/produits/(.+)-pdf/$ boutique/produits/$1/? [R=301,L]
    
    La ligne avec les flèches redirige toutes tes urls (vers index.php), exceptés les dossiers/fichiers, qui ne matchent pas la première règle. Donc forcément, ta règle suivante pour le "boutique/produits/..." ne sera jamais évaluée. Il faut donc la remonter: les règles les plus précises avant les plus génériques --> très important quand tu mets en place une réécriture d'urls.
    Il y a également des erreurs de syntaxe mais passons.

    De plus, je vois que tu cherches à empêcher l'accès direct à index.php et à faire pointer les urls vers index.php. L'idée est bonne mais tu t'y prends mal car tu ne fais que des redirections "normales" et c'est donc mauvais pour le référencement (duplicate content possible). Il faut donc rediriger de façon permanente (301) index.php vers la racine du site et faire pointer les urls (qui ne sont ni dossier, ni fichier) vers index.php.
    Mais là, attention, tu vas tomber sur une boucle de redirection, je t'invite donc à consulter l'article que j'ai tout récemment publié à ce sujet: https://www.webrankinfo.com/forum/t/tutoriel-eviter-les-boucles-de-redirection.168006/.

    En somme, je pense que le code qui correspond à ton cas ressemble à quelque chose comme ça:

    Code:
    RewriteEngine on
    
    RewriteRule     ^boutique/produits/(.+)-pdf/$     boutique/produits/$1/? [R=301,L]
    
    RewriteCond    %{REQUEST_FILENAME}     !-d
    RewriteCond    %{REQUEST_FILENAME}     !-f
    RewriteRule     ^(.*)$     index.php [E=BREAK:1,L]
    
    RewriteCond    %{ENV:REDIRECT_BREAK}     !^1$
    RewriteRule     ^index.php$     http://%{HTTP_HOST}/ [R=301,L]
    
    PS: sauf erreur de ma part, les "RewriteCond" ne sont pas cumulables pour les "RewriteRule". En gros, les RewriteCond ne seront effectifs que pour le premier RewriteRule rencontré (je te dis ça car dans le code que tu as posté tu pensais surement que les 2 "RewriteCond" était là pour les 2 "RewriteRule" qui suivent).
     
  5. 20cents
    20cents Nouveau WRInaute
    Inscrit:
    20 Novembre 2007
    Messages:
    32
    J'aime reçus:
    0
  6. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Je comprends bien ta question mais je vois pas l'url exacte que tu demandes.

    En gros, tu as
    Code:
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir-pdf/
    redirigé vers
    Code:
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir/
    Et tu voudrais ceci ?
    Code:
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir-pdf-rid=xxxxxx
    Je vois pas bien la structure de l'url que tu désires.
     
  7. 20cents
    20cents Nouveau WRInaute
    Inscrit:
    20 Novembre 2007
    Messages:
    32
    J'aime reçus:
    0
    En fait la page suivante :
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir-pdf/

    doit être redirigée vers
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir/

    sauf si un l'url contenant "-pdf" est suivie par d'autre éléments comme dans ce cas ci :
    http://www.monsite.fr/boutique/produits/reliques-le-quatrieme-pouvoir-pdf/&orderid=xxxxxx

    dans ce cas là pas de redirection. Donc s'il y a des caractères après le "/" on ne redirige pas la page vers sons équivalent sans "-pdf".

    Je sais pas si je suis clair... :/
     
  8. Giustino
    Giustino WRInaute discret
    Inscrit:
    19 Novembre 2011
    Messages:
    141
    J'aime reçus:
    0
    Ok j'ai bien compris.

    Normalement c'est mieux d'éviter ce genre de réécriture pour le référencement mais passons.
    Je pense que tu devrais tester le query string (RewriteCond %{QUERY_STRING}) car vu la présence du "&" cela devrait probablement figurer dans cette variable.

    Essayes ceci:
    Code:
    RewriteEngine on
    
    RewriteCond    %{QUERY_STRING}     !^&orderid=(.+)$
    RewriteRule     ^boutique/produits/(.+)-pdf/$     boutique/produits/$1/? [R=301,L]
    
    RewriteCond    %{REQUEST_FILENAME}     !-d
    RewriteCond    %{REQUEST_FILENAME}     !-f
    RewriteRule     ^(.*)$     index.php [E=BREAK:1,L]
    
    RewriteCond    %{ENV:REDIRECT_BREAK}     !^1$
    RewriteRule     ^index.php$     http://%{HTTP_HOST}/ [R=301,L]
    
     
Chargement...
Similar Threads - Rediriger contenant caractère Forum Date
Tout rediriger sauf une page contenant 'JS' URL Rewriting et .htaccess 3 Juin 2020
Rediriger des URL contenant un certain terme, possible ? URL Rewriting et .htaccess 10 Janvier 2012
rediriger des pages produits contenant un id Netlinking, backlinks, liens et redirections 19 Octobre 2010
Comment rediriger en 301 toutes les 404 vers une page précise ? Débuter en référencement 9 Septembre 2020
Rediriger Index.php vers racine URL Rewriting et .htaccess 15 Août 2020
Rediriger un site avec www vers sans www Administration d'un site Web 20 Avril 2020
Rediriger une page URL Rewriting et .htaccess 6 Avril 2020
Rediriger uniquement le dossier sans les pages internes Netlinking, backlinks, liens et redirections 17 Février 2020
Rediriger site dans un dossier à la racine Demandes d'avis et de conseils sur vos sites 14 Novembre 2019
Comment rediriger si la langue n'est plus dispo sur le nouveau site Référencement international (langues, pays) 27 Août 2019