2011-10-25 5 views
3

C'est la première fois que je réécris des urls pour être SEO friendly.Les URL ajoutées de manière répétée après RewriteRule dans .htaccess?

Voilà ma règle htaccess:

RewriteEngine On 
RewriteRule ratings/ ratings.php 
RewriteRule regions/ regionlist.php 
RewriteRule mobile/ mobile.php 

Pour une raison quelconque, quand je clique sur le même lien deux fois, l'URL s'ajouter dans la barre d'adresse. Heres une image gif montrant ce qui se passe:

http://i.stack.imgur.com/y5hqA.gif

Est-ce mauvais? Si c'est le cas, est-ce que quelqu'un sait ce qui ne va pas?

Une aide serait grandement appréciée!

Merci à tous

+2

Comment créez-vous votre URL? Ecrire le php/html de la création de l'URL. – onatm

Répondre

3

Changer vos RewriteRules à ceci:

RewriteRule ^([a-zA-Z]+)$ $1.php 

et assurez-vous que vos liens soient comme ceci:

<a href="/ratings">ratings</a> 

mais si vous avez besoin réécritures spécifiques modifier l'emplacement de la barre oblique

RewriteRule /ratings ratings.php 
RewriteRule /regions regionlist.php 
RewriteRule /mobile mobile.php 
+0

Problème résolu, merci: D Je me demandais juste, devrais-je créer une autre règle s'il n'y a pas de '/ 'après l'URL, par exemple http: // localhost/food/ratings/et http: // localhost/food/ratings? car ils ne pointent pas tous les deux au même endroit: / –

-2

Utilisez redirect:

redirect 301 /ratings /ratings.php 
+1

Pourquoi devraient-ils exposer leur structure de page interne? – gioele

+0

Je ne vois pas de problème avec cela, mais certains pourraient – jschorr

+0

Quelqu'un comme les fondateurs du Web? http://www.w3.org/Provider/Style/URI.html :) – gioele

0

si vous voulez que la réécriture de toujours être basé hors du répertoire racine que vous pouvez écrire vos règles avec une précédente «/» (slash)

RewriteEngine On 
RewriteRule /ratings ratings.php 
RewriteRule /regions regionlist.php 
RewriteRule /mobile mobile.php 

Cela devrait forcer la règle de réécriture à ajouter ceci à l'URL racine.

1

Je pense que ce n'est pas le htaccess qui provoque des problèmes ici ... IMO vous prenez l'URL actuelle et ajouter le nom de l'élément cliqué. Créez l'URL à partir de zéro à la place.

+0

Il s'avère que je manquais juste un '/' de mon attribut href dans le html, merci mate: D –