Heim  >  Artikel  >  PHP-Framework  >  Wie lädt thinkphp Routen?

Wie lädt thinkphp Routen?

步履不停
步履不停Original
2019-07-01 10:48:063088Durchsuche

Wie lädt thinkphp Routen?

Einführung in das ThinkPHP-URL-Routing

Einfach ausgedrückt ermöglicht Ihnen das URL-Routing, die URL anzupassen, die Sie unter bestimmten Regeln benötigen, um Beautify zu erreichen die URL, verbessern das Benutzererlebnis und kommen auch dem Zweck der Suchmaschineneinbindung zugute.

Beispiel

Die Original-URL lautet:

http://www.5idev.com/index.php/Products/Show/category/ 5/id/123

Die ursprüngliche Absicht dieser URL besteht darin, das Produkt mit der ID 123 in der 5. Kategorie anzuzeigen. Nach dem Umschreiben des URL-Routings kann die URL wie folgt lauten:

http://www.5idev.com/index.php/product/5/123

Wenn die .htaccess-Datei neu geschrieben wird Wird verwendet Wenn die Regel die Eintragsdatei verbirgt, kann die obige URL weiter vereinfacht werden zu:

http://www.5idev.com/product/5/123

Dies Die URL-Adresse ist relativ einfach und leicht zu handhaben.

Tipp: Mit den URL-Rewrite-Regeln von Apache kann auch die Funktion der URL-Anpassung erreicht werden, die hier nicht besprochen wird. Wenn Sie interessiert sind, lesen Sie bitte die Artikel zu Apache Rewrite.

ThinkPHP URL-Routing-Konfiguration

Um die URL-Routing-Funktion in ThinkPHP zu verwenden, müssen Sie die folgende Konfiguration vornehmen:

Aktivieren Sie die Routing-Funktion in der Projektkonfigurationsdatei Conf/ config.php (Auf true setzen):

'URL_ROUTER_ON' => true,

Die Routing-Regeldefinition

unterscheidet sich von Die Routing-Regeln der Version 2.x und 3.0 werden in der Projektkonfigurationsdatei config.php im Array-Format definiert. Die spezifischen Definitionsregeln sind in Regel-Routing und reguläres Routing unterteilt. Die Regel-Routing-Syntax lautet wie folgt:

Format 1: 'Routing-Regel'=>'[Gruppe/Modul/Operation]?Zusätzlicher Parameter 1=Wert 1&Zusätzlicher Parameter 2=Wert 2...'
Format 2: 'Routing Rules' =>array('[Group/Module/Operation]','Extra Parameter 1=Value 1&Extra Parameter 2=Value 2...')
Format 3: 'Routing Rule' = >'Externe Adresse'
Format 4: 'Routing-Regel' =>array('Externe Adresse','Umleitungscode')

Syntaxbeschreibung

Routing-Regeln sind die Regeln, die wir in der URL anzeigen möchten. Der folgende Elementwert ist die tatsächliche URL-Adresse und die Parameter. Wenn die Routing-Regel mit: beginnt, bedeutet sie eine dynamische Variable ein statisches Adressformat 2 Zusätzliche Parameter können als Arrays oder Zeichenfolgen übergeben werden, z. B.: 'product/:idd'=>'Products/Show' Routingregeln unterstützen den Ausschluss nicht numerischer Variablen Variablen, zum Beispiel 'news/:cate^ add|edit|delete'=>'News/category' Routing-Regel unterstützt vollständige Übereinstimmungsdefinition, zum Beispiel: 'product/:idd$'=>'Products/Show' Die Beim statischen Adressteil in der Routing-Regel wird die Groß-/Kleinschreibung nicht beachtet. Wenn Sie in der Adresse auf dynamische Variablen verweisen möchten, verwenden Sie :1, :2. Das Regel-Routing kann vollständige dynamische sowie dynamische und statische Definitionen unterstützen, zum Beispiel „:user/“. blog/:id'=>'Home/Blog/user'

Diese Regeln und Syntaxbeschreibungen sind relativ unklar. Nachfolgend finden Sie Beispiele, die Ihnen helfen, die oben genannten Routingregeln und Syntaxbeschreibungen zu verstehen.

Wenn die Routenaktivierungsfunktion in der Konfigurationsdatei definiert ist, ermittelt das System beim Durchführen der Dispatch-Analyse, ob die aktuelle URL einen definierten Routennamen hat. Wenn ja, führt es die URL-Analyse gemäß der Definition durch Routing-Regeln.

ThinkPHP URL-Routing-Beispiel

Nehmen Sie das Beispiel am Anfang dieses Artikels als Beispiel, um zu sehen, wie die Route definiert ist. Definieren Sie die folgenden Regeln in der Projektkonfigurationsdatei Conf/config.php:

//Route definition
'URL_ROUTE_RULES'=> array(
'product/:categoryd/:idd'=> ; 'Produkte/Show', //Rule Routing
),

Wenn wir auf die folgende Adresse zugreifen:

http://www.5idev.com/index . php/product/5/123

löst die Adresse in die Show-Operation des Moduls „Products“ auf und übergibt den Get-Parameter „category=5&id=123“.

Wenn es zusätzliche feste Parameter gibt, wie zum Beispiel status=1, können Sie die Route definieren:

'product/:categoryd/:idd'=>'Products/Show?status= 1', // Regelrouting

stimmt auch mit der folgenden URL-Adresse überein:

http://www.5idev.com/index.php/product/5/123/1

Die oben aufgeführten Routen sind alle gemäß Format 1 definiert. Wenn zusätzliche Parameter vorhanden sind, können diese in das zweite Definitionsformat konvertiert werden:

'product/:categoryd/:idd ' =>array('Products/Show','status=1')

In den obigen Routing-Regeln bedeutet d nur übereinstimmende Zahlen. Wenn diese Einschränkung nicht hinzugefügt wird kann mit allen Zeichen übereinstimmen, dies ist auch die Standardeinstellung. Wenn Sie sich strikt auf das Format der eingehenden Parameter einigen möchten, verwenden Sie reguläres Routing, um Regeln zu definieren.

Routing-Format: externe Adresse

Wenn beim Routing-Format 3 und Format 4 ein passendes Routing-Format erkannt wird, wird zur externen Adresse gesprungen. Der Unterschied besteht darin, dass Format 4 eine Umleitung hat Code: 301 steht beispielsweise für eine permanente Umleitung.

Weitere technische Artikel zu ThinkPHP finden Sie in der Spalte Tutorial zur Verwendung von ThinkPHP.

Das obige ist der detaillierte Inhalt vonWie lädt thinkphp Routen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn