it-swarm.com.de

Schreiben Sie bis zu drei Ordner in drei Abfragezeichenfolgenparameter in ein PHP -Skript

Ich möchte mod_rewrite in der Datei .htaccess verwenden, um Ordner in einen var string umzuschreiben. Nachfolgend finden Sie Beispiele für aktuelle und was ich bevorzugen würde.

  • Aktuelle URL: example.com/main/folder1/folder2/folder3
  • Bevorzugte URL: example.com/parser.php?var1=folder1&var2=folder2&var3=folder3

Wie kann ich die aktuellen URLs in bevorzugte URLs umschreiben?

4
exarhis

Sie können diese drei Umschreiberegeln verwenden, die bis zu drei Verzeichnisebenen verarbeiten:

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]

In diesen regulären Ausdrücken:

  • ^main\/: beginnt mit "main /"
  • ([^\/]+): Eine Reihe von Zeichen, die keine Schrägstriche enthalten (in einer Erfassungsgruppe, die mit $1, $2 oder $3 herausgezogen werden soll)
  • \/? ein optionaler abschließender Schrägstrich
  • [L] die letzte Umschreiberegel (damit spätere Umschreiberegeln nicht auch ausgelöst werden)

Normalerweise ziehe ich es vor, alle Ordner als einzelne Variable zu übergeben:

RewriteEngine on
RewriteRule ^main\/(.*) /parser.php?folders=$1

dann könnte Ihr PHP -Parser die Ordner im Schrägstrich aufteilen, um die drei gewünschten Variablen zu erhalten.

5