Routing: Zugriff auf die URL-Adresse einer bestimmten Methode im Projekt. Ein einfaches Verständnis ist die URL-Adresse
In ThinkPHP stellt das System 4 Routing-Formulare bereit (vorherige Routing-Format: index.php?p=platform&c=controller&a=method; pca)
Zusammenfassung: pca ist Plattform, Controller, Methode; mca ist in thinkPHP Gruppe, Controller, Methode
①Normale Form Routing;
②Pathinfo-Formularrouting;
③Formularrouting neu schreiben;
④Kompatibles Formularrouting
Detaillierte Erklärung unten
(1) Gewöhnlich Formularrouting
wird auch Get-Formularrouting genannt. Alle Informationen werden über get
Routing-Formular weitergeleitet: http://website/entry file (index.php)?m=group &c=controller name&a=Methode&Parametername=Parameterwert
Zum Beispiel: Greifen Sie auf die Testmethode im Benutzercontroller unter der Home-Gruppe zu und übergeben Sie eine Parameter-ID=1
http: //www.1336.com /index.php?m=Home&c=User&a=test&id=1
kann über $_GET['id'], Ausgabe 1, überprüft werden. Die Verifizierung ist also erfolgreich
Nachteile: Alles, was über die URL übergeben wird, wird angezeigt, was weder sicher noch gut aussieht. Daher wird es nicht oft verwendet.
(2) pathinfo()-Formular-Routing (thinkPHPs Standard-Routing)
Routing-Formular: http://website/entry file (index.php)/group name /Controllername/Methode/Parametername 1/Parameterwert 1/Parametername n/Parameterwert n
http://www.1336.com/index.php/Home/User/test/id/ 100
Die Methode enthält $_GET['id'] und 100 wird ausgegeben. Die Überprüfung ist also erfolgreich
(3) Routing-Formular neu schreiben (rewrite)
Routing-Formular: http://URL/Gruppenname/Controllername/Methodenname/Parameter 1/Parameterwert 1 /Parameter n/Parameterwert n
Der Unterschied zum Standard-Routing-Formular Pathinfo() von thinkPHP besteht darin, dass die Eintragsdatei fehlt
Hinweis: Dieses Routing-Formular kann nicht direkt verwendet werden erst nach Abschluss der Konfiguration verwendet werden
Konfigurationsschritte:
1. Konfigurieren Sie httpd.conf unter Apache und aktivieren Sie das erweiterte Rewrite-Rewrite-Modul.
2 Host-Konfigurationsdatei. Die Datei befindet sich im Apache-Verzeichnis conf/extra/httpd-vhosts und ermöglicht das Umschreiben der Konfiguration. Zeigt an, dass die aktuelle Site neu geschrieben werden darf
Einfach ausgedrückt: Fügen Sie für die Site, die neu geschrieben werden muss, Allowoverride:all
#针对目录的详细配置 <Directory> #允许所有访问 allow from all #允许重写 AllowOverride all #表示允许站点显示文件目录结构 Options +indexes </Directory>
3 Apache neu starten< hinzu 🎜>
4. Kopieren Sie die .htaccess-Datei im komprimierten ThinkPHP-Paket in das gleiche Verzeichnis wie die Eintragsdatei. Geben Sie nach Abschluss der Konfiguration die URL der Pfadinformationen oben ein wird auch hier verwendet. Entfernen Sie die Eintragsdatei und aktualisieren Sie sie. OK~Konfiguration abgeschlossenErweiterung:PHP-Betriebsmodus (5 Hauptbetriebsmodi):CGI-Modus (universelle Gateway-Schnittstelle);FastCGI-Modus (residentes CGI); CLI (Befehlszeilenbetrieb); Webmodulmodus (der Modus, in dem Webserver wie Apache ausgeführt werden) (5.3). Nach Version 1) nicht mehr unterstützt Der derzeit verwendete Modus des Umgebungsintegrationspakets ist der Webmodulmodus, und der FastCGI-Residentmodus wird häufig in der Arbeitsentwicklung verwendet. Zusammenfassend lässt sich sagen, dass der Rewrite-Modus Apache-Unterstützung erfordert und im Allgemeinen nicht empfohlen wird. Zur Serversoftware gehören neben Apache auch Nginx, Lightd usw. (4) Kompatibles Routing-Formular Das kompatible Routing-Formular kombiniert die Funktionen des gewöhnlichen Routing-Formulars, des Pathinfo-Routing-Formulars und des umgeschriebenen Routing-Formulars Routing-Formular: http:/ /website/ Eintragsdatei?s=/Gruppenname/Controllername/Methodenname/Parameter 1/Parameterwert 1Hinweis: Das kompatible Routing-Formular hat nur einen Parameter: Parametername s, der als angezeigt werden kann s ParameterwertZum Beispiel: http://www.1336.com/index.php?s=/Home/User/test/id/100, die Verifizierungsausgabe ist 100, was darauf hinweist, dass der Zugriff erfolgt erfolgreich (5) Erweiterung: Konfiguration des Routing-Formulars in ThinkPHP Konfigurationsdatei ThinkPHP/Conf/convention.php, ThinkPHP konventionelle Konfigurationsdatei/* URL设置 */ 'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写 'URL_MODEL' => 1,
http://serverName/appName/?m=module&a=action&id=1
http://serverName/appName/m/module/a/action/id/1 http://serverName/appName/a/action/id/1/m/module
http://serverName/appName/module/action/id/1/ http://serverName/appName/module,action,id,1/
http://serverName/appName/module/action/year/2000/month/01/day/01/
其中参数之间的分割符由PATH_DEPR参数设置,默认为"/",若设置PATH_DEPR为"^",则:
http://serverName/appName/module^action^id^1/
注意不要使用"@" 和"&"符号进行分割,该符号有特殊用途,可能会导致其他的冲突。
如果想要简化URL的形式可以通过路由功能(后面会有描述),在PATHINFO模式下,会把相关参数转换成GET变量,以及并入REQUEST变量,因此不妨碍应用里面的以上变量获取。
3、REWRITE模式:'URL_MODEL'=>2,
该URL模式和PATHINFO模式功能一样,除了可以不需要在URL里面写入口文件,和可以定义.htaccess 文件外。
例如,我们可以增加如下的.htaccess内容把所有操作都指向index.php文件。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
4、兼容模式:'URL_MODEL'=>3
兼容模式是普通模式和PATHINFO模式的结合,并且可以让应用在需要的时候直接切换到PATHINFO模式而不需要更改模板和程序,基本上可以支持任何的运行环境。
只需要传入PATHINFO 兼容模式获取变量VAR_PATHINFO,默认值为s,例如
http://serverName/appName/?s=/module/action/id/1/
会执行和上面的URL等效的操作,并且也可以支持参数分割符号的定义,例如在PATH_DEPR设置为"~"的情况下,下面的URL有效:
http://serverName/appName/?s=module~action~id~1
兼容模式的情况下面模板文件不用做任何更改,保持和PATHINFO模式的写法一样,只需要在切换URL模式的时候清空下模板缓存目录。
推荐教程:《TP5》
Das obige ist der detaillierte Inhalt vonEinführung in die vier URL-Modi von thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!