Vos avis sur un problème de redirection 301

WRInaute accro
Bonjour

Voilà, j'ai mon nom de domaine ( voir profil ), et deux pages d'accueil index.html et index.php

Mon problème consiste, d'une part à ce que mon nom de domaine sans www soit redirectionné en 301 vers le nom de domaine avec www, et que n'importe quel appel à la page d'accueil, soit redirigé vers le script index.php, qui fournit la même interface visuelle que index.html, avec les sessions en plus.

Je pense que dans ces conditions, il ne devrait pas y avoir de dilution du PR que l'on constate quand la page d'accueil du site est accessible avec plusieurs urls....

Donc, voici le contenu du fichier .htaccess que j'ai positionné dans mon répertoire racine ( dans lequel se trouvent index.html et index.php ) :

#----------------------------------------------
# Regles d'url-rewriting
#----------------------------------------------
# Repertoire: /
#----------------------------------------------

# Base de l'url-rewriting
RewriteBase /

# Activation du module de réécriture d'URL :
RewriteEngine On

# Règle d'ajout de www
RewriteCond %{HTTP_HOST} !www.ortolojf-courses.com$
RewriteRule (.*) http://www.ortolojf-courses.com/$1 [QSA,L,R=301]

#----------------------------------------------
# Regles de reecriture d'URL :
#----------------------------------------------

RewriteRule ^index\.html$ index.php [L,R=301]


Pourriez-vous me dire si ce fichier .htaccess vous paraît convenir ?

L'instruction RewriteBase / , est nécessaire pour situer l'endroit où seront prises en compte les règles situées après.

En particulier, quand un visiteur fait soit le nom de domaine sans www et sans fichier, soit sans www et avec un fichier index.html ou index.php, soit avec www et sans fichier, soit avec www et avec index.html, il faut que la requête soit redirectionnée vers le ndd avec www et le script index.php

Pour ce qui est des accès internes au site ( sous -répertoires ) avec le ndd sans www , je pense que je peux laisser courir... Mais toute suggestion serait la bienvenue lol... ;)

Comment faire en sorte que tout celà fonctionne correctement ? Cela fait quand même un certain nombre de règles, qui se suivent ou se superposent...

Merci beaucoup de vos avis.

Bien à vous.
Amicalement.

Jean-François Ortolo
 
WRInaute accro
index.html est physiquement présent, et nécessaire ?

Sinon:

[htaccess] Empècher l'indexation de index.html (redirection 301 vers la racine)
Code:
RewriteRule ^index.html$ / [QSA,L,R=301]

[index.php] Empècher l'indexation de index.php au profit de la racine (redirection 301 vers la racine)
Code:
<?php
if($_SERVER['REQUEST_URI'] == "/index.php")
	{
	header("Status: 301 Moved Permanently", false, 301);
	header("Location: http://".$_SERVER['HTTP_HOST']."/");
	exit;
		die("Redirection");
	}
?>
 
WRInaute accro
HawkEye a dit:
index.html est physiquement présent, et nécessaire ?

Sinon:

[htaccess] Empècher l'indexation de index.html (redirection 301 vers la racine)
Code:
RewriteRule ^index.html$ / [QSA,L,R=301]

[index.php] Empècher l'indexation de index.php au profit de la racine (redirection 301 vers la racine)
Code:
<?php
if($_SERVER['REQUEST_URI'] == "/index.php")
	{
	header("Status: 301 Moved Permanently", false, 301);
	header("Location: http://".$_SERVER['HTTP_HOST']."/");
	exit;
		die("Redirection");
	}
?>


Bonjour HawkEye

Je ne comprend pas du tout le contenu que tu donnes, du script index.php

Mon script index.php contient pas mal d'instructions, nécessaires à son fonctionnement, si je met tes instructions dans ce script, il ne va plus fonctionner ?

Et puis... Je ne sais pas si en l'absence de index.html ( que je peux supprimer mais qui existe actuellement, tout comme index.php ), une requête vers le ndd simple, redirige vers index.php automatiquement par le serveur.

Et puis... Il est nécessaire de rediriger les ndd sans www ( que ce soit avec ou sans index.html ou index.php ), vers le ndd avec www et index.php , de manière à ce que le PR de ma page d'accueil ne soit pas dilué.

Je ne vois pas dans ce que tu suggères, de redirection de ndd sans www, sur un ndd avec www.

Et puis... Plutôt que des redirections de index.html vers le ndd seul, ou de index.php vers le ndd seul, je verrais plutôt des redirections, de index.html vers index.php ( ce que je fais à la fin de mon fichier .htaccess ), ou du ndd seul vers index.php

Mais quid de la redirection du ndd sans www, vers le ndd avec www ?

Merci beaucoup de ta réponse.

Bien à vous.
Amicalement.

Jean-François Ortolo
 
WRInaute accro
- Place le code php tout en haut de ta page. ca ne va pas géner le deroulement des autres codes de ta page.

- Si tu as 1 fichier index.html qui traine a ta racine et ne sert a rien => supprime le, ca fait + propre. Par defaut, de toute facon, le serveur pointe sur l'extension .php en premier.

- Pour le www, met le code dans ton fichier .htaccess et ca se fait tout seul. Pour le php aussi d'ailleurs.

Si tu veux gerer ton index.html, ajoute cette redirection dans ton fichier .htccess. Ce qui renverra le fichier index.html à la racine si celui ci est demandé par le navigateur.

Code:
RedirectPermanent /index.html  http://www.tonsite.com/
 
WRInaute accro
KOogar a dit:
- Place le code php tout en haut de ta page. ca ne va pas géner le deroulement des autres codes de ta page.

- Si tu as 1 fichier index.html qui traine a ta racine et ne sert a rien => supprime le, ca fait + propre. Par defaut, de toute facon, le serveur pointe sur l'extension .php en premier.

- Pour le www, met le code dans ton fichier .htaccess et ca se fait tout seul. Pour le php aussi d'ailleurs.

Si tu veux gerer ton index.html, ajoute cette redirection dans ton fichier .htccess. Ce qui renverra le fichier index.html à la racine si celui ci est demandé par le navigateur.

Code:
RedirectPermanent /index.html  http://www.tonsite.com/


Bonjour KOogar

Le seul problème, c'est que je déclenche une session au début de mon script index.php, donc il va y avoir impossibilié de faire cette redirection par header, car aucune requête HTTP ne doit précéder l'ouverture de la session...

Sinon, je pense qu'il faut absolument faire une redirection de index.html vers index.php, sinon si l'url demandée par le visiteur, comporte index.html, le visiteur ne va rien trouver...

Et pendant que j'y suis, également une redirection 301 de index.htm ( sans l ) vers index.php

Tout redirectionner vers index.php, va faire qu'il n'y aura plus qu'une seule url réelle: www.mon_domaine.com/index.php , et donc plus de problème de dilution de PR.

Tant qu'à faire, mon fichier .htaccess initial, ne convient-il pas pour faire tout celà, s'il n'y a pas besoin de faire une redirection de index.php vers le ndd seul ?

Merci beaucoup de ta réponse.

Bien à vous.
Amicalement.

Jean-François Ortolo
 
WRInaute accro
re bonjour JF

Avant de clore mon precedent post, j'ai failli te dire de tester avant de reposer des questions. Je vois que tu es tres curieux et c'est un bien jolie defaut en info.

Comme tu la dis plus haut, avant de demarrer une session, en effet le cache du navigateur doit etre vide. Mais que fait ce code ? il redirige uniquement si le fichier est index.php. Si oui ca relance le script et cette fois ci sans requete http. Donc aucun souci au niveau de ta session.

Ce code est impossible a faire en htaccess, ca va boucler a l'infini/

Enjoy php
 
WRInaute accro
Bonjour
J'ai testé avec l'affichage des headers HTTP de Firefox.

En fait, dans le cas où le ndd est sans www, il y a bien redirection 301 permanente, vers www.mon_domaine.tld/fichier_appelé

Ensuite, l'url redirigée est conservée dans les headers HTTP, que ce soit index.html ou index.php qui soit appelé, avec retour 200 OK... Pourtant, je viens de supprimer index.html de mon site, donc même si l'url de redirection dans le header HTTP est www.mon_domaine/tld/index.html , le script index.php est bien déclenché, mais les headers HTTP conservent l'url contenant index.html

Dans le cas où le nom de domaine avec www est fourni par le visiteur, les headers HTTP , n'indiquent pas une redirection 301, mais un simple code de retour 200 OK, avec conservation dans tous les cas, de l'url d'origine... Or le script index.html n'existe plus sur le serveur, et le script index.php est bien appelé à sa place, comme si la redirection du serveur, n'était pas visible au niveau des headers HTTP de Firefox.

Le fait que l'url de départ soit conservé dans ce cas, indique que Google va voir la page d'accueil de mon site sous différentes urls, à moins qu'il ne soit capable de deviner que l'url finale est bien avec index.php

Celà serait la même chose si je redirigeais comme tu le dis, de index.php vers le nom de domaine seul, puisque l'url dans les headers HTTP, serait celle initiale, donc avec index.php ( ou avec index.html, ou avec le nom de domaine seul. )

Donc, de deux choses l'une: Soit Google devine l'url finale de redirection, et en tient compte. Dans ce cas il n'y a pas de problème, et je peux aussi laisser mon fichier .htaccess tel quel, soit Google tient compte de l'url donnée par les headers HTTP, et dans ce cas, aucune redirection, même 301, ne pourra faire que Google ne voit qu'une seule url pour ma page d'accueil.

Et... Celà est vrai pour tout site web comportant un script PHP en page d'accueil... Autant dire beaucoup de sites...

Celà m'étonnait aussi, que le test HTTP de Olivier, me donne un retour 200 OK, alors qu'il y a une redirection de index;html vers index.php

Comme le site WebRankInfo a certainement une session dès sa page d'accueil, il a certainement aussi un script index.php en page d'accueil... Puis-je permettre de demander à Olivier, comment il a résolu le problème de dilution du PR ?

En tout cas, d'après mon test, les redirections sont faites correctement avec mon fichier .htaccess

Merci beaucoup de vos réponses.

Bien à vous.
Amicalement.

Jean-François Ortolo
 
WRInaute accro
Ben finalement...
Je fais amende honorable.

Je vous prie de m'excuser d'avoir été aussi têtu. Je viens de mettre en place sur mon site, les deux redirections que vous m'avez indiqué: celle de index.php et celle de .htaccess , et ça marche parfaitement.

Désormais, toutes les urls prises en compte par les headers HTTP de Firefox, sont correctes, et donnent le nom de domaine seul avec www.

Il est éventuellement possible, que la baisse légère de PR ( de 4 à 3 ), que j'ai eu lors du "Bourbon" ou un peu après, ait effectivement été due, à ce problème de dilution de PR. Dans ce cas, mon PR devrait remonter jusqu'à 4 lors de la prochaine prise en compte du PR par la barre Google ( dans quelques mois ? ), après la toute prochaine Google Dance.

Je vous dois cette augmentation prochaine de mon PR... Merci beaucoup beaucoup de votre aide ! ;)

Merci encore.

Bien à vous.
Amicalement.

Jean-François Ortolo
 
Discussions similaires
Haut