Aide référencement et .htaccess

Nouveau WRInaute
Bonjour,

mon tout premier message sur le forum.

Cela fait quelques semaines que j'essaye de comprendre tous les rouages du référencement, mais je ne suis pas encore satisfait des résultats dans GG and Co..

Je suis obligé d'avoir mon site joomla dans un répertoire ( /CND ), donc il m'a fallu faire une page index.html contenant le logo avec une redirection ( en html et 3 secondes).

Je me suis aperçu que GG n'aimait pas du tout cette page, et j'ai essayé d'améliorer cette page en y rentrant des informations (liens du site, etc..).

Mais je crois que cela me pose toujours des difficultés avec GG (et puis ce n'est pas très jolie comme solution).

J'ai vu et lu qu'il valait mieux faire une redirection 301 dans le fichier .htaccess:

Le sujet : https://www.webrankinfo.com/forum/t/des-codes-pour-la-redirection-htaccess.110832/ me donne toutes les informations nécessaires, mais j'ai déjà un fichier .htaccess:
DirectoryIndex index.php
RewriteEngine On
RewriteBase /CND

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

Puis-je y rajouter (au début ?):

RewriteEngine On
RewriteRule http://www.cnd.info/index.html http://www.cnd.info/CND/ [R=301]

Est-ce que cela redirigera automatiquement tous les entrées sur l'adresse http://www.cnd.info et est-ce que cela apportera une amélioration par rapport à GG ?

Merci pour votre aide.

P.S: toutes vos suggestions pour améliorer mon site sont les bienvenues :)
 
WRInaute occasionnel
Hello,

Code:
Je suis obligé d'avoir mon site joomla dans un répertoire ( /CND ), donc il m'a fallu faire une page index.html contenant le logo avec une redirection ( en html et 3 secondes).

Pourquoi es tu obligé?

Pour le .htaccess c'est celui de base de joomla, tu peux y rajouter ce que tu veux!
 
Nouveau WRInaute
Hello Frez,

merci beaucoup pour ta réponse.

Je suis obligé d'avoir deux répertoires différents car j'ai 2 bases de données sur la même adresse chez mon hébergeur.
Si je fais une "redirection" dans la configuration de l'hébergeur, je crois que les liens ne marcheront plus car il semble qu'il efface le répertoire dédié.

Je pourrai tout simplement faire un backup de l'actuel .htaccess et essayé avec le RewriteEngine, mais il semble que si c'est une erreur, cela pourrait prendre des semaines avant d'être à nouveau bien indexé dans GG (toutes mes pages sont dans GG, c'est le ranking que je veux améliorer).

Est-ce donc une bonne idée de faire cette redirection en 301 et est-ce le bon code ? ou il vaut mieux que je laisse cela comme cela?

Merci encore.
 
Nouveau WRInaute
Bon, j'ai fait le grand saut...

j'ai trouvé le moyen chez mon hébergeur de faire une redirection directement dans le répertoire.

Ensuite, j'ai dû modifier le début de mon .htaccess comme ceci
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteRule ^CND/(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule http://www.cnd.info/CND/ http://www.cnd.info/ [R=301]

Je n'ai pas réussi à rediriger http://www.cnd.info/CND (sans le /)

Pour le reste il semble que tout fonctionne. Il faut donc:
1.Que je croise les doigts
2. Avoir beaucoup de patience

par contre je n'ai pas encore trouvé comme je peux exclure mon deuxième dossier /portail de la redirection...mais je cherche...
 
WRInaute occasionnel
Je suis obligé d'avoir deux répertoires différents car j'ai 2 bases de données sur la même adresse chez mon hébergeur.
Si je fais une "redirection" dans la configuration de l'hébergeur, je crois que les liens ne marcheront plus car il semble qu'il efface le répertoire dédié.

Tu peux avoir plusieurs bases de données sur un même hébergement et plusieurs sites sans être obligé de créer des répertoires.
Quel est l'adresse de ton autre site qui n'est pas dans le répertoire CND et qui "t'oblige" à faire cela?

Je crois que tu te compliques la vie pour rien et il y a quelquechose qui a du t'échapper....
 
WRInaute accro
frez a dit:
et plusieurs sites sans être obligé de créer des répertoires.

les sites sont toujours dans des répertoires, www est un répertoire. dans le cas ou l'hebergeur laisse le webmaster choisir l'emplacement du site, il est fortement conseillé de creer les sites en dehors du (www) pour avoir l'ensemble des sites au meme niveau
www (site1)
site2
site3

Pour le slash il faut ajouter une condition:
Code:
RewriteRule http://www.ndd/rep/? http://www.ndd/ [R=301]
pour exclure un répertoire:
Code:
RewriteCond %{REQUEST_URI} !^/repertoire_a_exclure/
 
Nouveau WRInaute
Encore une fois merci pour votre aide !

Je pense que maintenant tout fonctionne comme je le veux.

J'avais 2 bases de données pour 2 sites distincts (1 sur/CND/ et 1 sur /portail/).

J'ai pu créer une redirection pour chaque site directement chez mon hébergeur. Le domaine principale pointant vers le répertoire /CND/ et un sous domaine pointant vers le répertoire /portail.

J'ai essayé d'exclure le répertoire /portail de la redirection (merci KOogar !), mais ce n'était pas la solution.

Il m'a fallu créer 2 .htaccess dans chaque répertoires et tout est rentré dans l'ordre (du moins il me semble).

Voilà, maintenant je n'ai plus qu'a attendre et voir comment GG va réagir... :?
 
Nouveau WRInaute
Par contre pour le / j'ai essayé mais je tombe toujours sur la page 404

Code:
RewriteRule http://www.ndd/rep/? http://www.ndd/ [R=301]
 
WRInaute occasionnel
les sites sont toujours dans des répertoires, www est un répertoire. dans le cas ou l'hebergeur laisse le webmaster choisir l'emplacement du site, il est fortement conseillé de creer les sites en dehors du (www) pour avoir l'ensemble des sites au meme niveau

Cela va de soi mon cher Koogar... :D

je ne voulais pas trop compliqué la chose simplement...

Bref, j'imagine qu'il a un hébergement mutualisé préconfiguré associé au domaine CND. Le dossier www a été créé par défaut par l'hébergeur. Etant donné qu'il a déjà une base de donnée et un site dans ce dossier www, il a créé un dossier CND dans le dossier www plus un index.html directement dans le dossier www qui redirige vers le dossier CND en fait.

A mon avis: Le site placé dans le www n'est plus en ligne ou ne sert plus à rien car sinon il n'y aurait pas placé un index.html renvoyant vers le dossier CND.

ma question est la suivante: jpl1er: pourquoi ne supprime tu pas ton ancienne base de donnée qui ne sert plus à rien à priori et ne glisse tu pas simplement ton site à la racine de ton ftp (soit directement dans le dossier www)?

En effet, l'index.html que tu as mis en place redirige vers le dossier CND, ce qui me fait dire qu'il n'y a pas de site actif ou accessible dans le répertoire www!
 
Nouveau WRInaute
ma question est la suivante: jpl1er: pourquoi ne supprime tu pas ton ancienne base de donnée qui ne sert plus à rien à priori et ne glisse tu pas simplement ton site à la racine de ton ftp (soit directement dans le dossier www)?

En effet, l'index.html que tu as mis en place redirige vers le dossier CND, ce qui me fait dire qu'il n'y a pas de site actif ou accessible dans le répertoire www!

Parce qu'il me semble (mais je peux me tromper), que du coup je devrai réinstaller joomla et tout le site. Maintenant que j'ai réussi à enlever le /CND dans les liens et qu'en allant sur cnd.info on tombe directement dans le bon site, je pense que c'est mieux. J'espère seulement que pour GG cela ne sera pas un inconvénient.
 
WRInaute accro
jpl1er a dit:
Par contre pour le / j'ai essayé mais je tombe toujours sur la page 404

Code:
RewriteRule http://www.ndd/rep/? http://www.ndd/ [R=301]

chez certain hebergeur (pour ne citer qu'online) ca peu foiré
si ton hebergeur autorise les délimitateurs, faudra le faire 2 lignes:

Code:
RewriteRule http://www.ndd/rep$ http://www.ndd [R=301]
RewriteRule http://www.ndd/rep/$ http://www.ndd [R=301]
 
WRInaute occasionnel
Parce qu'il me semble (mais je peux me tromper), que du coup je devrai réinstaller joomla et tout le site. Maintenant que j'ai réussi à enlever le /CND dans les liens et qu'en allant sur cnd.info on tombe directement dans le bon site, je pense que c'est mieux. J'espère seulement que pour GG cela ne sera pas un inconvénient.

Ha je m'en doutais! :)

Et non! Ha mon avis oublies ces histoires de redirections, fait glisser ton site hors du répertoire CND (directement à la racine de ton ftp donc) puis ouvre le fichier configuration.php de joomla.

Il te faudra en théorie modifier 3 valeurs seulement:

$log_path
$tmp_path
$ftp_root

Tu enlèves de ces 3 variables le dossier CMD et hop le tour est joué! Fini les redirections intempestives!
 
Nouveau WRInaute
chez certain hebergeur (pour ne citer qu'online) ca peu foiré
si ton hebergeur autorise les délimitateurs, faudra le faire 2 lignes:

CODE: TOUT SÉLECTIONNER
RewriteRule http://www.ndd/rep$ http://www.ndd [R=301]
RewriteRule http://www.ndd/rep/$ http://www.ndd [R=301]

Non, cela ne marche pas non plus :(

Cela doit venir de mon hébergeur (1und1)...

voici pour l'instant le début de mon .htaccess

DirectoryIndex index.php
Code:
RewriteEngine On
RewriteBase /
RewriteRule ^CND/(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule http://www.cnd.info/CND/ http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND/? http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND$ http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND/$ http://www.cnd.info/ [R=301]
RewriteCond %{REQUEST_URI} !portail/(.*)$



Mias ce n'est pas si grave car on arrive quand même sur le site.
 
Nouveau WRInaute
Ha je m'en doutais!

Et non! Ha mon avis oublies ces histoires de redirections, fait glisser ton site hors du répertoire CND (directement à la racine de ton ftp donc) puis ouvre le fichier configuration.php de joomla.

Il te faudra en théorie modifier 3 valeurs seulement:

$log_path
$tmp_path
$ftp_root

Tu enlèves de ces 3 variables le dossier CMD et hop le tour est joué! Fini les redirections intempestives!

AH NON !!!!!!!!!!!!!!! :oops:

Je vais me taper la tête contre le mur et me filer quelques gifles et je reviens.....

Du coup il faut que j'efface tous ce que j'ai fait comme manipulation chez l'hébergeur et sur htaccess.

Enfin, c'est en forgeant qu'on devient forgeron ! :D
 
WRInaute occasionnel
:lol:

Donc:

- Tu annules les modifs de redirections faites chez ton hébergeur.
- Tu supprimes ton ancienne base de donnée (que tu sauvegarde éventuellement).
- Tu renommes ton .htaccess en ce que tu veux et tu le remplace par celui livré par défaut dans le package joomla.
- Tu te connectes à ton ftp, tu crées un dossier sauv dans lequel tu fais glisser absolument tous les dossiers et fichiers.
- Tu télécharges le contenu du sossier CMD sur ton disque dur.
- Tu ouvres le dossier CMD sur ton disque dur, tu modifies le fichier configuration.php comme ci-avant, tu sélectionnes tout et tu re-glisses les fichiers à la racine de ta connexion ftp.
- Tu tapes l'adresse de ton site et il doit apparaitre si tout c'est bien passé!
 
Nouveau WRInaute
frez a dit:
:lol:

Donc:

- Tu annules les modifs de redirections faites chez ton hébergeur.
- Tu supprimes ton ancienne base de donnée (que tu sauvegarde éventuellement).
- Tu renommes ton .htaccess en ce que tu veux et tu le remplace par celui livré par défaut dans le package joomla.
- Tu te connectes à ton ftp, tu crées un dossier sauv dans lequel tu fais glisser absolument tous les dossiers et fichiers.
- Tu télécharges le contenu du sossier CMD sur ton disque dur.
- Tu ouvres le dossier CMD sur ton disque dur, tu modifies le fichier configuration.php comme ci-avant, tu sélectionnes tout et tu re-glisses les fichiers à la racine de ta connexion ftp.
- Tu tapes l'adresse de ton site et il doit apparaitre si tout c'est bien passé!

Résultats des courses....

J'ai annulé les modifs chez l'hébergeur...j'ai mis tout mon dossier CND sur le répertoire par défaut... modifier configuration.php...Remplacer htaccess par l'ancien... je tape l'adresse de mon site et... ERREUR.

Je remet mon nouveau htaccess avec les redirections et... ÇA MARCHE ! (a part le cnd sans le slash /)

- Tu supprimes ton ancienne base de donnée (que tu sauvegarde éventuellement).
je n'ai pas fait.
 
WRInaute occasionnel
ton site est accessible ici:

http://www.cnd.info/cnd/index.php

Pour moi çà veut dire qu'il n'est pas à la racine du ftp. Tu as bien mis les fichiers à la racine mais PAS dans le répertoire CMD? Le répertoire CMD tu dois le supprimer aussi! Ainsi que l'index.html...
 
Nouveau WRInaute
frez a dit:
ton site est accessible ici:

http://www.cnd.info/cnd/index.php

Pour moi çà veut dire qu'il n'est pas à la racine du ftp. Tu as bien mis les fichiers à la racine mais PAS dans le répertoire CMD? Le répertoire CMD tu dois le supprimer aussi! Ainsi que l'index.html...


J'ai bien tout effacé dans le répertoire CND

Mais comme j'ai une redirection dans mon fichier htaccess, tu tombe sur le répertoire racine.
En fait tout à l'heure en remettant le fichier htaccess d'orgine, j'avais oublié d'enlever le CND. Mais il vaut mieux que je laisse le nouveau htaccess avec les redirection en 301 pour GG (si j'ai bien compris ce qui est écrit sur GG et dans le forum).

ENCORE UNE FOIS MERCI POUR TOUT CE TEMPS ET POUR TON AIDE !
 
WRInaute occasionnel
Pour ton problème de slash, tu as une option dans artio joomsef --> configuration avancée --> Be tolerant to trailing slash?
Tu mets sur yes et les urls sont accesibles avec ou sans le / à la fin.

Enfin pour parfaire ton site, il serait mieux d'enlever la "page d'entrée" (suppression de index.html donc) de ton site qui n'est pas conseillée par nombre de membres de ce forum.

Puis (pour les puristes :) ) de rediriger la page http://www.cnd.info/index.php vers http://www.cnd.info/ pour éviter le duplicate content et une dissolution éventuelle de ton futur pagerank.

Ce qui peux se faire par exemple dans le .htaccess ou éventuellement en php à mettre dans l'index.php de ton template:

Code:
<?php if($_SERVER['REQUEST_URI']=='/index.php'){
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.cnd.info");
exit();
}

Et la tu es au top du top :wink:

NCORE UNE FOIS MERCI POUR TOUT CE TEMPS ET POUR TON AIDE !

Je t'en prie!
 
Nouveau WRInaute
Bonjour :)
J'ai passé quelques heures à refaire mon template...

Pour ton problème de slash, tu as une option dans artio joomsef --> configuration avancée --> Be tolerant to trailing slash?
Tu mets sur yes et les urls sont accesibles avec ou sans le / à la fin.

C'était déjà fait...

Enfin pour parfaire ton site, il serait mieux d'enlever la "page d'entrée" (suppression de index.html donc) de ton site qui n'est pas conseillée par nombre de membres de ce forum.

Puis (pour les puristes ) de rediriger la page http://www.cnd.info/index.php vers http://www.cnd.info/ pour éviter le duplicate content et une dissolution éventuelle de ton futur pagerank.

Je l'ai mis dans mon .htaccess

Code:
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteRule ^CND/(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule ^cnd/(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule ^CND(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule ^cnd(.*)$ http://www.cnd.info/$1 [R=301,L]
RewriteRule http://www.cnd.info/cnd/ http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND/ http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND/? http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND$ http://www.cnd.info/ [R=301]
RewriteRule http://www.cnd.info/CND/$ http://www.cnd.info/ [R=301]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]

RewriteCond %{REQUEST_URI} !portail/(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

Maintenant tout fonctionne...

<?php if($_SERVER['REQUEST_URI']=='/index.php'){
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.cnd.info");
exit();
}

J'ai essayé, mais j'obtiens toujours un message d'erreur. Et puis comme j'étais fatigué, et pressé, à force de faire des modifications sur la template, j'ai réussi à "corrompre" l'original et la backup !!! Mais comme je voulais en refaire une nouvelle = "A quelque chose malheur est bon" .
 
Discussions similaires
Haut