Sans www. vers www. pour éviter le contenu dupliqué

Bonjour
Depuis le temps que je reluque ce cms.... je viens de craquer pour PluXml et de l'installer sur http://www.redacteurseo.fr. Bonne surprise, il est extrêmement simple et bien abouti (sans parler de sa rapidité de chargement).

En revanche, je suis surpris que nativement, PluXml génère du contenu dupliqué (pas bon pour le référencement) puisqu'il n'y a pas de redirection de http://redacteurseo.fr vers http://www.redacteurseo.fr (ou inversement, peu importe!).

Du coup, il me faut mettre les mains dans le htaccess pour créer la redirection, mais je n'y parviens pas.

Mon htaccess :
[== Indéfini ==]
# BEGIN -- Pluxml
Options -Multiviews
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Réécriture des urls
RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
</IfModule>
<Files "version">
	Order allow,deny
	Deny from all
</Files>
# END -- Pluxml

Je sais que je dois y coller un truc du style :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^redacteurseo.fr [NC]
RewriteRule ^(.*)$ http://www.redacteurseo.fr/$1 [L,R=301,NC]

Si quelqu'un peut m'aider, je suis preneur ! :)

Réponses

  • Merci Jormun. Malheureusement, j'obtiens un très joli :

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, *********@redacteurseo.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.



    Mon htaccess ressemble à
    [== Indéfini ==]
    #Force www:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^redacteurseo\.fr [NC]
    RewriteRule (.*) http://www.redacteurseo.fr/$1 [R=301,L]
    
    # BEGIN -- Pluxml
    Options -Multiviews
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    # Réécriture des urls
    RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
    RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
    </IfModule>
    <Files "version">
    	Order allow,deny
    	Deny from all
    </Files>
    # END -- Pluxml
    
  • Même message d'erreur 8.(
  • Christophe35Christophe35 Member
    décembre 2014 modifié
    Même résultat.
    Non, avec le htaccess généré par PluXml, pas de problème, même en activant l'url rewriting.

    D'ailleurs, je suis allé sur ton site http://brunchparisien.fr et tu as le même souci ! En faisant le tour de 2-3 membres pris au hasard, il semblerait qu'il s'agisse d'un problème récurrent !
  • Christophe35Christophe35 Member
    décembre 2014 modifié
    Jormun a écrit:
    Et en te mettant apres le <IfModule mod_rewrite.c> de pluxml ?

    J'ai mis :
    [== Indéfini ==]
    # BEGIN -- Pluxml
    Options -Multiviews
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^redacteurseo.fr [NC]
    RewriteRule ^(.*)$ http://www.redacteurseo.fr/$1 [R=301,L]
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    # Réécriture des urls
    RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
    RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
    </IfModule>
    <Files "version">
    	Order allow,deny
    	Deny from all
    </Files>
    # END -- Pluxml
    

    Et cela fonctionne !
    Un grand merci !
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Voilà une autre solution (qui fonctionne également, confirmée par Christophe)
    # BEGIN -- Pluxml
    Options -Multiviews
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule (.*) http://%1/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    # Réécriture des urls
    RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
    RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
    </IfModule>
    <Files "version">
    	Order allow,deny
    	Deny from all
    </Files>
    # END -- Pluxml
    
    

    Les 2 lignes importantes sont
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule (.*) http://%1/$1 [R=301,L]
    

    Elle a l'avantage d'être générique et de ne pas avoir à coder l'url de son site en dur, utile notamment si vous travaillez en local par exemple avant de déployer le site sur votre hébergeur.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Les deux solutions fonctionnent parfaitement.
    Après, avoir www. devant le nom de son site ou pas, cela ne change rien d'un point de vue seo, l'essentiel étant de ne pas avoir de contenu dupliqué ;)
    Ce post servira à beaucoup de monde je pense :)

    Encore merci à tous les deux.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Ha oui en effet :D
    Et bien comme ça les 2 solutions sont disponibles :)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • nickel merci les gens
  • Perso mon htaccess :
    <IfModule mod_rewrite.c>
            RewriteEngine on
            RewriteBase /
    
            RewriteCond %{HTTP_HOST} ^blogoflip.fr$
            RewriteRule ^(.*) http://www.blogoflip.fr/$1 [QSA,L,R=301]
    
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-l
            # Réécriture des urls
            RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
            RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
    </IfModule>
    

    J'ai un string de l'array

Connectez-vous ou Inscrivez-vous pour répondre.