web-dev-qa-db-fra.com

Comment optimiser l'URL pour les moteurs de recherche?

J'ai un modèle php qui a un index.php et toutes les pages différentes (content1.html, content2.html, etc.) sont affichées sur la page index.php. Donc, par exemple, je peux ouvrir www.example.com/index.php?content1 et il affichera le content1.html.

Maintenant, ce que je voudrais, c'est ceci: vous voyez souvent des sites Web dont l’URL est la suivante: www.example.com/this-is-the-content. Je sais comment faire cela avec un point d'exclamation comme www.example.com/?content1 où vous n'écrivez pas simplement le index.php.

Mais comment puis-je créer un nom d'URL, qui est complètement différent du nom de fichier? Par exemple, www.example.com/this-is-some-page me montrerait le contenu de index.php? Content1

5
phpheini

Vous devriez probablement regarder dans mod_rewrite qui pourrait vous aider.

Voir cette aide-mémoire pour obtenir de l'aide .

2
Pål Brattberg

.htaccess est certainement un itinéraire que vous pouvez utiliser pour réécrire les URL. Mais, je pense que l'élément qui vous manque est la partie où vous devez stocker le contenu de votre page dans une base de données ou stocker les noms de fichiers et les slugs d'URL des pages dans un tableau sur index.php à extraire. De cette façon, vous pouvez avoir un slug d'URL différent du nom de fichier réel.

Par exemple, si vous utilisez une règle de réécriture dans .htaccess qui indique que toutes les requêtes pour l'URL http://www.example.com/the-page-you-want doivent afficher le contenu de content1.html, vous devez spécifier quelque part que "the-page-you-wanna" fait référence à content1.html.

2
Floyd

voir la réponse de @ Pål Brattberg pour une description détaillée.

@phpheini Vous n'avez pas besoin de lier le fichier .htaccess à la base de données, supposez si vous voulez l'URL de votre article comme

http://example.com/sports/45/world-cup-2011.html

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)/([0-9]+)/(.*?).html$ /index.php?type=$1&article_id=$2

Ici $ 1 et $ 2 obtiennent le type d'article et article_id qui peuvent changer. index.php peut afficher du contenu en fonction des paramètres.

1
Nikhil Bhandari