Archives par étiquette : htaccess

.htaccess – Redirection vers un sous-dossier

Voici comment faire pour rediriger les requêtes du dossier principal d’un site web vers un sous-dossier :

# Activons le "RewriteEngine" pour pouvoir 
# utiliser les "RewriteRule" et "RewriteCond"
RewriteEngine on

# Ensuite, vérifions que nous sommes bien sur 
# mathieupeloquin.com ou www.mathieupeloquin.com
# et dans le sous-dossier voulu.
RewriteCond %{HTTP_HOST} ^(www.)?mathieupeloquin.com$
RewriteCond %{REQUEST_URI} !^/sous-dossier/

# Vérifions si la personne a tapé le nom d'un
# fichier ou dossier existant (dans ce cas, nous
# ne voulons pas ré-écrire la requête...)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Maintenant que toutes les conditions ont été
# rencontrées, on redirige vers le bon sous-dossier
RewriteRule ^(.*)$ /sous-dossier/$1

# Finalement, on vérifie si la personne n'a seulement
# tapé que le nom de domaine (avec ou sans www) sans
# rien mettre après la barre oblique (/). Si oui, on redirige
# vers le bon sous-dossier, sur le fichier principal...
# (notez que le fichier pourrait être autre chose, tel que
# index.php, autrefichier.html, quelquechose.php...)
RewriteCond %{HTTP_HOST} ^(www.)?mathieupeloquin.com$
RewriteRule ^(/)?$ sous-dossier/index.html [L]

Il faut simplement mettre ce code (vous pouvez inclure les lignes débutant par # puisque ce sont des commentaires qui ne seront pas traités par Apache).

Comment éviter le « content spamming »

Contexte

Évidemment, puisqu’il est question sur mon site de Linux (CentOS) en général, ce très léger article est pensé en conséquences d’un site web fonctionnant sous Apache.  Pour de l’information sur le content spamming sous Windows (IIS) ou tout autre serveur web Linux, veuillez taper « content spamming redirect NOMDUSERVEUR » dans votre engin de recherche favori.

Pourquoi?

Les engins de recherche aujourd’hui vérifient beaucoup de choses et essaient de se défaire des concepteurs de sites publicitaires et autres.  Dans certains cas, ils se sont rendu compte que certains concepteurs hébergeaient le même site sur plusieurs serveurs sous des domaines différents, ce qui réplique le contenu à plusieurs endroits dans les engins de recherche et a pour but de faire sortir le site plus haut ou plus souvent.

Pour éviter que votre site web ayant plusieurs domaines ou sous-domaines pointant légitimement sur le même contenu ne soit considéré comme l’un de ces sites (content spammer), vous devez rediriger tout ce qui pointe vers le même contenu sur un seul domaine ou hôte.

Plusieurs domaines ou hôtes

Si vous avez plusieurs domaines (ex.: mathieupeloquin.com, mathieupeloquin.ca, mathieupeloquin.net, etc.) ou plusieurs hôtes (ex.: mathieupeloquin.com, www.mathieupeloquin.com, support.mathieupeloquin.com, etc.), il vous faut faire une redirection permanente en disant à Apache que si ce n’est pas exactement le bon nom qui est tapé, il faut rediriger vers le bon de façon permanente (de façon à ce que le navigateur et les engins de recherche s’en souviennent).

Dans un fichier .htaccess à la racine web du site (habituellement dans le dossier html ou public_html), vous placez un fichier nommé « .htaccess » (le point « . » est important) contenant le texte suivant (ajustez selon votre nom de domaine) :

RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTP_HOST} !^www\.mathieupeloquin\.com$
RewriteRule ^(.*) http://www.mathieupeloquin.com/$1 [L,R=301]

Avec ces règles, si une personne tape www.mathieupeloquin.ca ou mathieupeloquin.com ou test.mathieupeloquin.com et que cet hôte pointe sur mon hébergement, il sera automatiquement et de façon permanente, redirigé vers www.mathieupeloquin.com.

Pourquoi le port 80?

C’est simple : de rediriger une adresse qui est en https poserait problème avec la configuration du certificat de sécurité…  Il est préférable de rediriger de cette façon avec un certificat de sécurité :

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.mathieupeloquin.com/$1

Conclusion

J’espère que le tout vous aura aidé à mieux sortir ou éviter de moins bien sortir dans les engins de recherche.  C’est simple et efficace et sans maintenance si vous ajoutez d’autres hôtes ou noms de domaines plus tard.