Empêcher index.php d'apparaître dans l'url de votre site
En ajoutant un morceau de code dans la configuration NGINX ou Apache, vous pouvez empêcher le fichier index.php
d'apparaitre dans votre url et ainsi éviter les problèmes de double contenu.
Ce problème peut facilement survenir dans les frameworks PHP modernes tels que Laravel ou Symfony. Je vous fournirez également l'équivalent pour NGINX et Apache afin que vous puissiez choisir la solution qui convient le mieux à votre serveur web.
Lorsqu'un moteur de recherche indexe votre site, il est possible qu'il détecte plusieurs URLs pour une seule et même page, ce qui peut entraîner un problème de double contenu. Cela peut nuire à votre référencement et diminuer la visibilité de votre site dans les résultats de recherche. Pour éviter cela, vous pouvez utiliser la configuration suivante pour NGINX :
if ($request_uri ~* "^/index\.php/*(.*)") {
return 301 /$1;
}
Ce morceau de code permet de rediriger toutes les requêtes contenant index.php
vers une URL sans index.php
. Par exemple, si un utilisateur accède à https://exemple.com/index.php/ma-page
, il sera redirigé vers exemple.com/ma-page
avec un code de statut HTTP 301, indiquant une redirection permanente. Cette solution évite le double contenu indexé en s'assurant que les moteurs de recherche n'indexent qu'une seule version de chaque page.
Si vous utilisez le serveur web Apache, vous pouvez obtenir le même résultat en utilisant les règles de réécriture avec un fichier .htaccess
. Voici l'équivalent pour Apache :
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
Cette configuration utilise le module mod_rewrite pour vérifier si la requête contient index.php
et redirige vers une URL sans index.php
, tout comme la configuration NGINX. N'oubliez pas d'activer le module mod_rewrite
et d'autoriser les fichiers .htaccess
si ce n'est pas déjà fait.
Outre la configuration de votre serveur web pour éviter les problèmes de double contenu indexé, une autre précaution importante à prendre est de définir le lien canonique de chaque page à l'aide de la balise canonical
. Cette balise informe les moteurs de recherche de la version préférée d'une URL, ce qui est particulièrement utile lorsque plusieurs URLs peuvent mener à un même contenu.
La balise de lien canonique ressemble à ceci :
<link rel="canonical" href="https://exemple.com/ma-page" />
Dans notre cas concret précédent, nous avons redirigé les utilisateurs de exemple.com/index.php/ma-page
vers exemple.com/ma-page
. Pour vous assurer que les moteurs de recherche comprennent que "exemple.com/ma-page" est la version canonique et préférée de cette page, vous pouvez ajouter la balise meta ci-dessus dans la section <head>
de votre document HTML.
Ainsi, même si les moteurs de recherche découvrent plusieurs URLs pointant vers le même contenu, ils tiendront compte de la version canonique spécifiée et éviteront de pénaliser votre site pour un double contenu. Cela vous permet de maintenir un bon référencement tout en utilisant des frameworks PHP modernes tels que Laravel et Symfony.
En combinant les configurations de serveur web pour NGINX ou Apache avec l'utilisation de la balise de lien canonique, vous pouvez efficacement éviter les problèmes de double contenu indexé et optimiser la visibilité de votre site dans les moteurs de recherche.