Heures au format UTC + 1 heure [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
  Imprimer le sujet | Envoyer par e-mail à un ami

créer un moteur de recherche avec l'url-rewriting
Auteur Message
MessagePosté: 31 Mai 2008, 18:28 
Lorsque quelqu'un tape un groupe de mots à la suite du nom de domaine de votre site
(par ex. "http://www.monsite.com/un groupe de mots clefs"), si ce qroupe de mots n'est pas le nom d'une page, au lieu de renvoyer une page erreur 404, le serveur transmet le groupe de mots au moteur de recherche du site et affiche les résultats.

Exemple :
Vous tapez : "www.monsite.com/ma recherche" dans votre navigateur, aucune page du site ne s'appelle "ma recherche", le serveur transmet donc la requête au moteur de recherche interne du site qui affiche les résultats disponibles pour la requête "ma recherche".

Prérequis :
Un serveur Apache avec le module mod_rewrite activé.

Méthodologie :
Nous allons utiliser le module mod_rewrite d'Apache.

Fichier .htaccess :
Placez ce fichier à la racine de votre site, vous pouvez supprimer les commentaires (après les #).
Dès lors, si un fichier demandé n'existe pas, l'url est réécrite et amène à la page search.php, il est donc impératif que la page search.php existe à la racine du site (ou ailleurs, si vous modifiez le fichier .htaccess en conséquence), sans quoi une boucle infinie se crée et déclenche une erreur 500.
La totalité de la chaine qui suit le nom de domaine est envoyée en paramètre par la méthode GET dans la variable autosearch_kw à la page search.php.

Code:
# Le bloc d'instructions ci-dessous ne sera appliqué que si le module mod_rewrite est activé.
<IfModule mod_rewrite.c>
# Démarre l'utilisation de mod_rewrite.
RewriteEngine on
# Teste la non-existance du fichier demandé.
RewriteCond %{REQUEST_FILENAME} !-f
# Si la condition ci-dessus est vérifiée l'url est ré écrite.
RewriteRule ^(.+) /search.php?autosearch_kw=$1
</IfModule>


Fichier search.php :
Le fichier php contiendra à terme votre moteur de recherche.
Pour faire vos tests, utilisez le fichier suivant :

Code:
<?php header("HTTP/1.0 404 Not Found"); // Important ! ?>
<pre><?php print_r($_GET['autosearch_kw']) ?></pre>


Veillez à ce que l'instruction <?php header("HTTP/1.0 404 Not Found"); // Important ! ?> se trouve sur la première ligne du fichier, sans aucun blanc la précédant, sans quoi, le statut 404 Not Found ne pourrait pas être renvoyé.
Déposez ce fichier à la racine de votre serveur puis tapez l'url "http://www.monsite.com/ma recherche"
Si tout fonctionne bien, vous devriez voir apparaitre "ma recherche" dans la fenetre de votre navigateur, sans que l'url ne change.

De la nécessité de renvoyer un statut 404 Not Found :
Pour ceux qui utilisent des Google Sitemaps, il est impératif que la page search.php renvoie un statut 404 Not found, en effet, lors de la lecture de vos sitemaps, Google teste des urls abérantes pour voir si un statut d'erreur est renvoyé. Si un statut 404 Not Found n'est pas renvoyé, l'exploitation des sitemaps cesse aussitôt.

Cette astuce à été trouvé sur : http://www.art-coding.fr et je pense que l'on peux l'améliorer pour augmenter nos positionnements si vous avez des idées je peux les réaliser car je ne connais pas bien le référencement mais je me débrouille en PHP


Rapporter le message
Haut
  
Répondre en citant le message  

Afficher les messages précédents:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Vous pouvez poster de nouveaux sujets
Vous pouvez répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron