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
Rediriger tout un site vers un répertoire à la racine URL Rewriting et .htaccess 23 Juin 2021
Rediriger des domaines au nom explicite vers un domaine établi mais moins spécifique Netlinking, backlinks, liens et redirections 1 Février 2021
page 404 lien indexer comment le rediriger? Débuter en référencement 12 Janvier 2021
rediriger les sous domaines vers la page d'accueil URL Rewriting et .htaccess 11 Janvier 2021
Domaines Expirés : rediriger ou faire des sites ? Netlinking, backlinks, liens et redirections 3 Décembre 2020
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