Heim > PHP-Framework > YII > Hauptteil

Routing-Konfiguration im Yii-Framework: URL-Verschönerung

WBOY
Freigeben: 2023-06-21 15:59:00
Original
1237 Leute haben es durchsucht

Mit der rasanten Entwicklung des Internets wird die Erfahrung der Menschen bei der Nutzung von Websites immer besser. Unter anderem ist die Form der URL für Benutzer nach und nach zu einem wichtigen Faktor geworden, um die Qualität der Website zu beurteilen. Zur URL-Verschönerung bietet das Yii-Framework eine Vielzahl von Routing-Konfigurationslösungen. Dieser Artikel konzentriert sich auf die Routing-Konfiguration im Yii-Framework und die Implementierung der URL-Verschönerung.

1. Grundlagen der Routing-Konfiguration

Routing bezieht sich auf die Zuordnung der angeforderten URL-Adresse zu bestimmten Controllern und Methoden, um eine spezifische Verarbeitung der Anfrage zu erreichen. Im Yii-Framework wird die Routing-Konfiguration über den URL-Manager (UrlManager) abgeschlossen. Der URL-Manager befindet sich im Konfigurationsordner der Anwendung wie folgt:

'components' => [
    'urlManager' => [
        'class' => 'yiiwebUrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            // ...
        ],
    ],
],
Nach dem Login kopieren

Unter anderem gibt enablePrettyUrl an, ob verschönerte URLs aktiviert werden sollen. Es wird empfohlen, ihn auf true</code zu setzen >; <code >showScriptName gibt an, ob der Skriptdateiname (z. B. index.php) in der URL angezeigt werden soll. Es wird außerdem empfohlen, ihn auf false zu setzen, um die Schönheit nicht zu beeinträchtigen der URL. enablePrettyUrl表示是否启用美化后的URL,建议设置为trueshowScriptName表示在URL中是否显示脚本文件名(如index.php),也建议设置为false,以免影响URL的美观度。

二、静态路由

静态路由是指可以将某个特定的URL地址直接映射到控制器和方法上。例如,我们可以将index.php?r=site/about这样的URL地址静态化为about,访问时直接输入http://yourdomain.com/about即可。

在Yii框架中,实现静态路由的方法如下:

'rules' => [
    'about' => 'site/about',
],
Nach dem Login kopieren

这里的about表示映射的URL地址,site/about则表示具体的控制器和方法。

三、动态路由

动态路由是指将带有参数的URL地址映射到控制器和方法上,并通过参数传递数据。例如,我们可以将index.php?r=site/view&id=1这样的URL地址动态化为view/1,访问时直接输入http://yourdomain.com/view/1即可。

在Yii框架中,实现动态路由的方法如下:

'rules' => [
    'view/<id:d+>' => 'site/view',
],
Nach dem Login kopieren

这里的view/<id:d+>表示映射的URL地址,其中id是参数名,d+是匹配数字的正则表达式,site/view则表示具体的控制器和方法。

四、高级路由

高级路由是对静态和动态路由的扩展,可以实现更加复杂的URL映射。例如,我们可以将index.php?r=user/profile这样的URL地址转化为profile/username,访问时直接输入http://yourdomain.com/profile/admin即可。

在Yii框架中,实现高级路由的方法如下:

'rules' => [
    [
        'class' => 'yiiwebUrlRule',
        'pattern' => 'profile/<username:w+>',
        'route' => 'user/profile',
        'suffix' => '',
    ],
],
Nach dem Login kopieren

这里的'class' => 'yiiwebUrlRule'表示我们采用的是高级路由,'pattern' => 'profile/<username:w+>'表示URL地址的匹配规则,其中<username:w+>表示参数名和正则表达式,'route' => 'user/profile'表示具体的控制器和方法,'suffix' => ''

2. Statisches Routing

Statisches Routing bedeutet, dass eine bestimmte URL-Adresse direkt einem Controller und einer Methode zugeordnet werden kann. Beispielsweise können wir eine URL-Adresse wie index.php?r=site/about statisch in about umwandeln und dann direkt http://yourdomain eingeben Zugriff auf.com/about.

Im Yii-Framework lautet die Methode zum Implementieren von statischem Routing wie folgt: 🎜rrreee🎜about steht hier für die zugeordnete URL-Adresse und site/about steht für den spezifischen Controller und Methode. 🎜🎜3. Dynamisches Routing 🎜🎜Dynamisches Routing bezieht sich auf die Zuordnung von URL-Adressen mit Parametern zu Controllern und Methoden sowie die Weitergabe von Daten über Parameter. Beispielsweise können wir eine URL-Adresse wie index.php?r=site/view&id=1 dynamisch in view/1 umwandeln und dann direkt http eingeben Zugriff auf: //yourdomain.com/view/1Das ist es. 🎜🎜Im Yii-Framework lautet die Methode zum Implementieren von dynamischem Routing wie folgt: 🎜rrreee🎜Der view/<id:d+> stellt hier die zugeordnete URL-Adresse dar, wobei id ist der Parametername, d+ ist ein regulärer Ausdruck, der mit Zahlen übereinstimmt, und site/view stellt den spezifischen Controller und die Methode dar. 🎜🎜4. Erweitertes Routing 🎜🎜Erweitertes Routing ist eine Erweiterung des statischen und dynamischen Routings, mit der eine komplexere URL-Zuordnung erreicht werden kann. Beispielsweise können wir eine URL-Adresse wie index.php?r=user/profile in profile/username umwandeln und direkt http://yourdomain eingeben beim Zugriff auf .com/profile/admin. 🎜🎜Im Yii-Framework lautet die Methode zum Implementieren von erweitertem Routing wie folgt: 🎜rrreee🎜Der 'class' => 'yiiwebUrlRule' bedeutet hier, dass wir erweitertes Routing verwenden, ' pattern' = > 'profile/<username:w+>' stellt die Übereinstimmungsregel der URL-Adresse dar, wobei <username:w+> den Parameternamen darstellt und regulärer Ausdruck, 'route' => 'user/profile' stellt bestimmte Controller und Methoden dar, 'suffix' => '' stellt zusätzliche Zeichen am Ende dar die URL-Adresse. 🎜🎜Zusammenfassung🎜🎜Durch die obige Einführung können wir die grundlegenden Methoden der Routing-Konfiguration im Yii-Framework und die Unterschiede darin verstehen. Bei der Konfiguration des Routings müssen Sie jedoch auf die Schönheit und Lesbarkeit der URL-Adresse achten und auch gute Vorkehrungen für die zugrunde liegenden Controller und Methoden treffen. Nur wenn ein Gleichgewicht zwischen den beiden Aspekten erreicht wird, kann die URL-Adresse der Website in verschiedenen Szenarien besser bestimmten Controllern und Methoden zugeordnet werden, wodurch das Website-Erlebnis verbessert wird. 🎜

Das obige ist der detaillierte Inhalt vonRouting-Konfiguration im Yii-Framework: URL-Verschönerung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage