2014-09-07 2 views
2

Donc j'ai eu ce problème pendant un certain temps et à l'origine je l'ai juste traité le long chemin mais cela n'a pas fonctionné ainsi j'espérais pour une solution plus solide.Rendre les URLs jolies avec une ligne d'htaccess

Mon problème est actuellement qu'utiliser le code suivant:

RewriteRule ^error/([a-zA-Z0-9-]+)/$ error.php?id=$1

error.php id = 404 devient ceci:

/error/404/

ce qui est parfait. Cependant si j'ajoute une nouvelle page qui utilise un identifiant à la fin, je dois l'ajouter à mon htaccess qui est un travail supplémentaire et ne semble pas très bon en termes de bonne pratique. J'espérais avec une seule ligne que j'aurais pu avoir toutes sortes de combinaisons mais ça ne marche pas.

J'ai essayé ce qui suit qui a entraîné une erreur de requête multiple de 300 par défaut.

RewriteRule ^/([a-zA-Z0-9-]+)/$ $1.php?id=$2

Toute aide s'il vous plaît?

Répondre

2

Vous pouvez utiliser cette

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 
RewriteRule ^([^/]+)/([^/]+)/$ /$1.php?id=$2 [L] 

Exemple: /error/404/ sera réécrite à /error.php?id=404 si error.php existe

Note: peut-être vous devrez désactiver l'option MultiViews (contenu apache négociation)

Options -MultiViews 
+1

Merci pour votre réponse rapide, cela a fonctionné parfaitement. Aussi l'option MultiViews n'était pas un problème pour moi. Merci! :) – Dan

Questions connexes