Aller au contenu
Parfaitement web

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.

Commentez cet article

Découvrez d'autres articles

Faites écrire vos commits avec ChatGPT

Si tous vos messages de commit se ressemblent et ne sont jamais assez descriptifs, vous pouvez dès à présent automatiser leur écriture à l'aide la librairie open-source Open Commit

Zipper le contenu d'un dossier sans node_modules, .git et .idea

La commande zip -r archive.zip ./ledossier -x  **/node_modules/\* permet de créer un zip de tout un dossier en excluant le dossier node_modules.

Corriger l'erreur "Could not cleanup old kegs" dans Homebrew

Lorsque je mets à jour mes programmes installés via Homebrew sur mon MacOS à l'aide de la commande brew cleanup, il m'arrive de tomber sur l'erreur de permission : Could not cleanup old kegs! Fix your permissions Voici comment je résouds simplement cette erreur.

Découvrez d'autres vidéos