PHP tous les paramètres GET avec le mod_rewrite
Je suis en train de concevoir mon application. Et je dois faire la prochaine les choses. Tous les paramètres GET (?var=valeur), avec l'aide de mod_rewrite convient de se transformer en /var/valeur. Comment puis-je faire cela? J'ai seulement 1 .fichier php (index.php), parce que je suis avec le FrontController modèle. Pouvez-vous m'aider avec ce mod_rewrite règles?
Désolé pour mon anglais. Je vous remercie à l'avance.
Que des sons horribles pour vous et vos utilisateurs. Généralement, c'est une bonne idée pour faire votre chemin ressembler à ce qui spécifie le contenu, mais laissez les autres paramètres seul. Par exemple, au lieu de /contenu.le php?id=5, vous pourriez avoir /content/5. Si vous avez une poignée d'options pour quelque chose de bien, vous voudrez peut-être faire quelque chose comme /content/5?opt1=quelque chose&opt2=quelque chose.
OriginalL'auteur Alex Pliutau | 2011-01-12
Vous devez vous connecter pour publier un commentaire.
Je fais quelque chose de ce genre sur les sites qui utilisent des " seo-friendly URLs.
.htaccess:
Puis sur index.php:
L' .htaccess à la règle dit qu'il charge index.php si le fichier ou le répertoire demandé n'a pas été trouvé. Alors que vous venez d'analyser l'URI de la demande pour décider de ce index.php devrait faire.
OriginalL'auteur profitphp
Le code suivant dans votre .htaccess va réécrire votre URL par exemple.
/api?other=parameters&added=true
à/?api=true&other=parameters&added=true
OriginalL'auteur Patrick
.htaccess
La première partie est l'URL qui est reçu. La deuxième partie de l'URL réécrite que vous pouvez lire à l'aide de
$_GET
. Tout ce qui est entre(
et)
est vu comme une variable. Le premier sera$1
, la deuxième$2
. De cette façon, vous pouvez déterminer exactement où les variables doit aller dans l'URL réécrite, et donc de savoir comment les récupérer.Vous pouvez le garder très général et de permettre "à tout" à l'aide d'
(.+)
. Cela signifie tout simplement: un ou plusieurs (la+
) de n'importe quel caractère (le.
). Ou être plus précis et, par exemple, autoriser uniquement les chiffres:[0-9]+
(un ou plusieurs caractères dans la plage de 0 à 9). Vous pouvez trouver beaucoup plus d'informations sur les expressions régulières sur les http://www.regular-expressions.info/. Et c'est un bon site pour les tester: http://gskinner.com/RegExr/.OriginalL'auteur Alec
Autant que je sache, mod_rewrite n'a pas affaire à des paramètres après le point d'interrogation — regexp de fin de ligne pour les règles de réécriture correspond à la fin du parcours avant le '?'. Donc, vous êtes un peu limité pour passer les paramètres à travers, ou les laisser complètement lors de la réécriture.
OriginalL'auteur Dennis Kreminsky