Est-ce que mon .htaccess est correct ?

Nouveau WRInaute
Bonsoir à toutes et à tous

J'avais posté quelques messages il y'a quelques temps à propos du site que je gère:
-http://www.foretdesenigmes.com/

Je me suis en effet trouvé confronté à 3 problèmes:
-j'ai changé le nom de beaucoup de mes pages
-mon site est accessible avec ET sans 'www'
-quand on revient sur la page index via les liens situés sur les pages internes, on tombe sur -http://www.foretdesenigmes.com/index.htm et non sur -http://www.foretdesenigmes.com/

J'ai donc créé, comme certains me l'ont suggéré, un fichier .htaccess et j'y ai mis toutes ces règles

Ce qui donne ceci: voilà le contenu de mon fichier .htaccess :




Code:
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^foretdesenigmes\.com$ 
RewriteRule (.*) http://www.foretdesenigmes.com/$1 [R=301]


function redirection_301_si_besoin($url_attendue)
{
  if ($_SERVER['REQUEST_URI'] != $url_attendue)
  {
    header("Status: 301 Moved Permanently", false, 301);
    header("Location: http://www.foretdesenigmes.com".$url_attendue);
    exit;
  } 
}


RewriteEngine on 

RedirectPermanent avinter.html http://www.foretdesenigmes.com/aventure-interactive.html 

RedirectPermanent avacro.html http://www.foretdesenigmes.com/aventure-acrobatique.html 

RedirectPermanent telecharger/plan.html http://www.foretdesenigmes.com/telecharger/plan-parc-foret.html

...etc, etc...autant de règles que de pages changées



J'aimerais savoir si je n'ai pas fait d'erreur et si mon fichier est correct

Merci infiniment de vos réponses


[Edit HawkEye: présentation & liens]
 
WRInaute impliqué
Je ne suis pas un pro du .htaccess, mais le plus simple dans ton cas serait de transférer directement ton fichier sur ton serveur et de tester s'il fonctionne.
 
WRInaute passionné
Ce code dans ton index.php et c'est réglé

Code:
if($_SERVER['HTTP_HOST'] == 'tondomaine.fr') {
 $url = 'http://www.tondomaine.fr/';
 header('Status: 301 Moved Permanently');
 header('Location: '.$url);
 exit();
}
 
Nouveau WRInaute
Donc ça donne ceci?

Code:
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^foretdesenigmes\.com$ 
RewriteRule (.*) http://www.foretdesenigmes.com/$1 [R=301] 
RedirectPermanent avinter.html http://www.foretdesenigmes.com/aventure-interactive.html 
RedirectPermanent avacro.html http://www.foretdesenigmes.com/aventure-acrobatique.html 
RedirectPermanent telecharger/plan.html http://www.foretdesenigmes.com/telecharger/plan-parc-foret.html 
...etc, etc...autant de règles que de pages changées

[Edit HawkEye: mise en forme]

Comme ça c'est bon?
Je n'ai pas sauté de ligne, juste des retours à la ligne dans le notepad
Peut-être dois-je en sauter entre les régles? (par ex entre la règle du www et celles des redirections?)



raljx a dit:
Ce code dans ton index.php et c'est réglé

Code:
if($_SERVER['HTTP_HOST'] == 'tondomaine.fr') {
 $url = 'http://www.tondomaine.fr/';
 header('Status: 301 Moved Permanently');
 header('Location: '.$url);
 exit();
}

Ca sera une page index.html, et non php

Je le mets où? Dans le HEAD je suppose? Avant ou après la balise <title> ?

En tout cas merci à tout le monde, vous me sortez d'une belle mouise... :wink:



HawkEye --> Excuse pour la mise en page de hier
 
WRInaute passionné
pour le htaccess c'est tout bon.
tu peux ajouter des lignes vides pour plus de lisibilité si tu veux.

si ton index n'est pas en php utilise plutôt la solution htaccess : -http://www.urlrewriting.fr/scripts3-Snipet.html

Il ne faut pas oublier de modifier les liens contenant /index.xxx pour les remplacer par /
 
Nouveau WRInaute
webmasterlamogere a dit:
pour le htaccess c'est tout bon.
tu peux ajouter des lignes vides pour plus de lisibilité si tu veux.

si ton index n'est pas en php utilise plutôt la solution htaccess : -http://www.urlrewriting.fr/scripts3-Snipet.html

Il ne faut pas oublier de modifier les liens contenant /index.xxx pour les remplacer par /

Merci. Par contre j'ai pas trop compris la dernière phrase avec le /index.xxx :?:
D'après le lien que tu m'as donné, la fonction PHP (aussi bien pour l'index que pour le www) permet d'éviter le .htaccess? Où alors j'ai rien compris

Là ça doit être bon:

Code:
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^foretdesenigmes\.com$ 
RewriteRule (.*) http://www.foretdesenigmes.com/$1 [R=301] 

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index(htm|html|php|asp) 
RewriteRule ^(.*)index.(htm|html|php|asp)$ /$1 [R=301,L]

RedirectPermanent avinter.html http://www.foretdesenigmes.com/aventure-interactive.html

RedirectPermanent avacro.html http://www.foretdesenigmes.com/aventure-acrobatique.html

RedirectPermanent telecharger/plan.html http://www.foretdesenigmes.com/telecharger/plan-parc-foret.html 

...etc, etc...autant de règles que de pages changées

Est-ce que c'est bon?


Sinon j'utilise Dreamweaver, et quand je construis une page et que j'y fais un lien vers la page index, je sélectionne dans la boite de dialogue le fichier index.html
A l'avenir, si je mettais seulement l'URL du site (-www.www.foretdesenigmes.com) dans les liens qui reviennent vers l'accueil (l'index donc), ça m'éviterait pas tous les désagréments liés au duplicate content au sujet de l'index.html???
 
WRInaute passionné
le lien que j'ai donné donne deux méthodes : une htaccess et une php => a toi de choisir celle que tu veux sachant que la solution htaccess est plus performante et marche pour la racine et ses sous-répertoires.

Pour la dernière phrase ce que j'ai voulu dire c'est qu'il ne faut que tous les liens sur tes pages pointent vers l'index. Il faut bien mettre "http://www.foretdesenigmes.com/" ou "/"
 
Nouveau WRInaute
webmasterlamogere a dit:
le lien que j'ai donné donne deux méthodes : une htaccess et une php => a toi de choisir celle que tu veux sachant que la solution htaccess est plus performante et marche pour la racine et ses sous-répertoires.

Pour la dernière phrase ce que j'ai voulu dire c'est qu'il ne faut que tous les liens sur tes pages pointent vers l'index. Il faut bien mettre "http://www.foretdesenigmes.com/" ou "/"

OK, je n'avais pas compris
En fait, les 3 lignes pour l'index dans le .htaccess servent surtout pour les liens qui viendraient de l'extérieur et qui pointeraient vers
-http://www.foretdesenigmes.com/index.html ?

Pour mes liens internes, situés sur mes pages internes et qui pointent vers ma page index (accueil), il me suffit donc, dans le code HTML, de mettre:

<a href="http://www.foretdesenigmes.com/">Accueil</a>
au lieu de
<a href="index.htm">Accueil</a>

J'espère ne pas me tromper?


Sinon je vais prendre la version .htaccess comme tu le suggère, d'autant plus que j'y ai déjà des règles pour d'autres choses
Ma dernière version de mon .htaccess, dans mon post précédent, au dessus (notemment pour l'index) est donc bonne ?? (sinon tu m'aurais repris) :wink:



Encore une fois merci mille fois de ton aide :wink:
 
Discussions similaires
Haut