J'aimerais utiliser mod_rewrite dans le fichier .htaccess
pour réécrire les dossiers dans un var string
. Vous trouverez ci-dessous des exemples de courant et de ce que je préférerais.
example.com/main/folder1/folder2/folder3
example.com/parser.php?var1=folder1&var2=folder2&var3=folder3
Comment puis-je réécrire les URL actuelles sur les URL préférées?
Vous pouvez utiliser ces trois règles de réécriture qui gèrent jusqu'à 3 niveaux de répertoires:
RewriteEngine on
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2 [L]
RewriteRule ^main\/([^\/]+)\/? /parser.php?var1=$1 [L]
Dans ces expressions régulières:
^main\/
: commence par "main /"([^\/]+)
: un groupe de caractères qui ne sont pas des barres obliques (dans un groupe de capture à extraire avec $1
, $2
ou $3
)\/?
une barre oblique de fin optionnelle[L]
la dernière règle de réécriture (afin que les règles de réécriture ultérieures ne soient pas aussi déclenchées)Je préfère généralement passer tous les dossiers comme une seule variable, comme ceci:
RewriteEngine on
RewriteRule ^main\/(.*) /parser.php?folders=$1
alors votre analyseur PHP pourrait scinder les dossiers de la barre oblique pour obtenir les trois variables souhaitées.