redirection www,index.php

  • Auteur de la discussion Auteur de la discussion tryan
  • Date de début Date de début
WRInaute passionné
bonjour

Afin d'eviter le duplicate et la dilution du pr,je souhaiterais rediriger les url de mon annuaire.
L'url que je reference est de cette forme *http://monsite.com mais on me trouve egalement sous *http://www.monsite.com , *http://www.monsite.com/index.php *http://monsite.com/index.php
Je crois savoir que celà se passe dans le fichier .htaccess mais je ne sais pas de quelle façon exactement.
D'autre part mon htaccess contient les regles de rewriting de l'annuaire...celà va t'il poser probleme et ou mettre exactement le code qui me manque?
cdt
 
WRInaute passionné
Merci de la reponse :D
Voilà donc ce que j ai mis dans le htaccess:
Code:
RewriteCond %{HTTP_HOST} !^referencement-link.com$ 
RewriteRule ^(.*)   http://referencement-link.com/$1  [QSA,L,R=301]
Ce qui à pour effet de rediriger "www" vers *http://referencement-link.com
Cependant si je rajoute index.php (http://monsite.com/index.php ) celà ne fonction pas...donc encore duplicate!!
Que dois je rajouter :?:
cdt
 
WRInaute accro
J'utilise ça:

Code:
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [QSA, R=301, L]

...et ça redirige -http://example.com/whatever vers -http://www.example.com/whatever :D

(le ^ devant le (.*) est peut-être le problème...) ;)
 
WRInaute passionné
Merci :D

J'ai donc supprimé le ^ devant le (.*) et sa ne change rien.
J'ai testé aussi votre code et j ai le resultat suivant:
Code:
Internal Server Error
...pas de chance :)
Je me suis peut etre mal expliqué...
Je reference et je veux que les internautes arrivent par l'url sans les "www" ni "index.php".
Le code actuelle redirige bien les "www" vers l'url souhaité (*http://referencement-link.com).
Maintenant je veux faire la meme chose pour que l'url *http://referencement-link.com/index.php soit redirigé vers *http://referencement-link.com

Fesable??
cdt
 
WRInaute passionné
bonjour
Je remonte un peut ce poste car je peinne à trouver une reponse.
La redirection des www ce fait très bien vers le NDD sans www.
Je ne trouve nulle part comment rediriger le ndd/index.php vers le ndd tout cours?
Est ce que:*http://referencement-link.com/index.php + *http://referencement-link.com = duplicate :?: :?:
 
WRInaute occasionnel
Essaie les lignes suivantes :
Code:
RedirectPermanent /index.php http://example.com

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$ 
RewriteRule ^(.*)   http://example.com/$1  [QSA,L,R=301]

Arnaud
 
WRInaute passionné
Merci schtroumpf

Toujours sans succès :( .Du coup le site ne s'affiche plus...comme si la page page se re-chargeais indefiniment :?:
Mon htaccess actuelle:
Code:
#Options FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteRule ^([^,.]*),([0-9]+)(,([0-9]*))*\.html index.php?cat=$2&p=$4 [L]
RewriteRule ^([0-9]+)-in*\.html$ in.php?id=$1 [QSA,L]
RewriteRule ^rss/([^-.]+)-([^-.]+)-([^-.]+).xml$ rss/index.php?flux=$1&cat=$2&name=$3 

[QSA,L]
RewriteRule ^([^,.]*)-([0-9]+)*\.html$ p_display.php?id=$2 [QSA,L]
RewriteRule ^top_([A-Z]+)*\.html$ p_top.php?mod=$1 [QSA,L]

#php_flag register_globals Off
#php_flag session.use_trans_sid off

RewriteCond %{HTTP_HOST} !^referencement-link.com$ 
RewriteRule ^(.*)   http://referencement-link.com/$1  [QSA,L,R=301]
cdt
 
WRInaute accro
Dans l'htaccess:

Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)   http://example.com/$1  [QSA,L,R=301]

Dans ton index.php (tout au début):

Code:
<?
if($_SERVER['REQUEST_URI'] == "/index.php")
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST']."/");
 exit;
 die("Redirection");
}
?>

Si ça, ça marche pas... :|
 
WRInaute accro
yep, pas de rewrite, avec 1 ptit preg_match pour voir si l'url contient 'www', sinon redirection. Nickel pour les moteurs (Error 301)
 
WRInaute passionné
bonjour

Merci de vos réponse :D , cependant celà ne fonctionne pas !
Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d151556265/htdocs/inc/head.php:13) in /homepages/18/d151556265/htdocs/template/default/head.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d151556265/htdocs/inc/head.php:13) in /homepages/18/d151556265/htdocs/template/default/head.php on line 5
Je suppose que l 'erreur vient de moi :?:
 
WRInaute passionné
C'est ce que j'ai fait !
Mon fichier header se nome "head"...celà a t'il de l'importance ?
cdt
 
WRInaute accro
nan aucune importance, ce qu'il faut c'est que rien ne soit envoyé au navigateur (ni même un espace) avant la fonction header(...)
donc en général, faut le placer tout en haut du code...
 
WRInaute accro
tryan a dit:
C'est ce que j'ai fait !
Mon fichier header se nome "head"...celà a t'il de l'importance ?
cdt

C'est que head.php n'est PAS le premier contenu affiché.

Si tu fais une redirection par les headers, aucune info ne peut avoir été envoyée au navigateur avant (je vulgarise, hein).

En gros, si je ne m'abuse, ton site est géré par "index.php", qui se compose d'une succession de fichiers inclus (dont head.php qui gère vraisemblablement l'entête de ton site).

C'est dans index.php que tu dois insérer la fonction, aux premières lignes.
 
WRInaute passionné
Merci de vos reponses et tout particulierement HawkEye qui detient la bonne reponse :D .Effectivement le code etait à inclure dans le fichier index.php .Tout fonctionne bien,plus de duplicate,un grand merci :wink:
cdt
 
WRInaute accro
pour des redirections massives, 301 Moved Permanently me semble bien plus approprié que de réécrire l'url ; ) Quand pensez-vous ?

Code:
<?php
$subject = $_SERVER['HTTP_HOST'];
$pattern = '/^www/';
if(preg_match($pattern, $_SERVER['HTTP_HOST']))
{
echo ' Welcome sur le site ;-) ';
}
else
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.".$_SERVER['HTTP_HOST']."/");
}

?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut