Maison > développement back-end > tutoriel php > Comment puis-je réécrire des URL avec des variables GET dans .htaccess pour un routage propre ?

Comment puis-je réécrire des URL avec des variables GET dans .htaccess pour un routage propre ?

Linda Hamilton
Libérer: 2024-11-15 11:34:03
original
345 Les gens l'ont consulté

How Can I Rewrite URLs with GET Variables in .htaccess for Clean Routing?

Réécriture d'URL avec des variables GET dans .htaccess

Lors de l'utilisation de PHP à des fins de routage (par exemple, index.php?page=controller), il est utile d'avoir une structure d'URL plus propre et plus conviviale. .htaccess, un fichier de configuration Apache largement utilisé, fournit un moyen pratique de réécrire les URL et de gérer les variables GET.

Dans la situation donnée, l'objectif est d'avoir des URL comme http://localhost/controller/ route vers index.php?page=controller de manière claire et concise. De plus, l'exigence est de prendre en charge les URL avec des paramètres, tels que http://localhost/controller/param/value/param/value, qui doivent correspondre à http://localhost/controller/?param=value¶m=value avec le GET. variables.

Pour y parvenir, une solution simple mais efficace peut être implémentée en utilisant une règle de réécriture dans le fichier .htaccess :

RewriteRule ^([\w\d~%.:_\-]+)/(.+)$ index.php?page=&params= [NC, QSA]
Copier après la connexion
  1. Modèle de réécriture : La RewriteRule commence par le modèle ^([wd~%.:_-] )/(. )$, qui correspond à toute URL composée d'un nom de contrôleur suivi d'une barre oblique et de tout paramètre supplémentaire séparé par des barres obliques.
  2. URL cible : L'URL cible est index.php?page=$1¶ms=$2. Ici, $1 représente le nom du contrôleur et $2 représente la chaîne entière du paramètre.
  3. Drapeaux de réécriture : L'indicateur NC (sans casse) garantit une correspondance insensible à la casse, tandis que l'indicateur QSA (requête String Append) concatène la chaîne GET existante avec les paramètres de la règle de réécriture.

Avec cette règle en place, une URL telle que http://localhost/controller/param/value/param/value sera être réécrit dans index.php?page=controller¶ms=param/value/param/value. Cela fournit un moyen propre et simple de gérer les paramètres GET et de conserver la structure d'URL d'origine.

Pour accéder à ces paramètres dans votre code PHP, vous pouvez utiliser $_GET['params'], qui contient la chaîne de paramètres. Vous pouvez ensuite le diviser à l'aide d'un délimiteur (par exemple /) et accéder aux valeurs de paramètres individuels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal