Sagen Sie mir bitte, wie ich die Route mit der ID im String-Format in den URL-Regeln von yii2 konfigurieren kann.

WBOY
Freigeben: 2016-08-18 09:16:12
Original
1268 Leute haben es durchsucht

Hintergrund:
Ich habe die URL-Verschönerung aktiviert, die folgenden sind die aktuellen URL-Regeln
URL:
example.com/site/view?id=06XBvOuYTbVE9pH8t/KJg==
Der Parameter id Der Wert ist verschlüsselt

Ich möchte es in diese Art von URL ändern:
1. example.com/view/06XBvOuYTbVE9pH8t/KJg==.html
Aber es funktioniert nicht, egal wie ich es konfiguriere,
Aber es funktioniert so:
2. example.com/view/1199.html

Routing-Regeln 2 sind sehr einfach zuzuordnen:

<code>rules => [
    'view/<id:\d+>' => 'site/view' // 好使
]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Aber die Routing-Regel 1 funktioniert nicht, egal wie Sie sie konfigurieren:

<code>rules => [
    'view/<id:[\w|%|=]+>' => 'site/view' // 不行
    'view/<id:.*+>' => 'site/view' // 不行
    'view/<id:.*>' => 'site/view' // 不行
    '/view/<id:[^.]*>.html'=>'site/view?id=<id>' // 不行
]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Unterstützen die Regeln nur die reguläre Regel d?
Wie konfiguriere ich es, um diesen Effekt zu erzielen?
Warten online

Antwortinhalt:

Hintergrund:
Ich habe die URL-Verschönerung aktiviert, die folgenden sind die aktuellen URL-Regeln
URL:
example.com/site/view?id=06XBvOuYTbVE9pH8t/KJg==
Der Parameter id Der Wert ist verschlüsselt

Ich möchte es in diese Art von URL ändern:
1. example.com/view/06XBvOuYTbVE9pH8t/KJg==.html
Aber es funktioniert nicht, egal wie ich es konfiguriere,
aber es funktioniert so:
2. example.com/view/1199.html

Die Routing-Regeln von 2 sind sehr einfach zuzuordnen:

<code>rules => [
    'view/<id:\d+>' => 'site/view' // 好使
]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Aber die Routing-Regel 1 funktioniert nicht, egal wie Sie sie konfigurieren:

<code>rules => [
    'view/<id:[\w|%|=]+>' => 'site/view' // 不行
    'view/<id:.*+>' => 'site/view' // 不行
    'view/<id:.*>' => 'site/view' // 不行
    '/view/<id:[^.]*>.html'=>'site/view?id=<id>' // 不行
]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Unterstützen die Regeln nur die reguläre Regel d?
Wie konfiguriere ich es, um diesen Effekt zu erzielen?
Warten online

Die obige Antwort macht Sinn. Das Vorkommen von / bedeutet, dass die URL zu /view/06XBvOuYTbVE9pH8t/FKJg==.html wird und daher nicht mit dem Format von /view/ übereinstimmen darf.

Außerdem ist dieser Plan, um es ganz klar auszudrücken, einfach nur ein Idiot. Was ist der Zweck einer Friendly URL? Verbessern Sie die Lesbarkeit und helfen Sie der Suchmaschinenoptimierung. Hat ein sogenannter verschlüsselter String diesen Effekt? Gibt es einen Unterschied zum direkten ?id= ohne vorherige Optimierung? Es ist nur eine Formalität, ist es interessant?

Die richtige Lösung besteht darin, das Slug-Feld zu verwenden, z. B. /view/iphone-6s-gold. Dies ist die eigentliche Optimierung.

Sagen Sie nicht, dass es nur darum geht, andere daran zu hindern, wahllos IDs einzugeben. Das ist unhaltbar und ich möchte keine weiteren Gründe nennen. Und auch dieses Problem löst die Slug-Lösung.

Ich denke, / wird als / behandelt. Sie können die Verschlüsselungs- und Entschlüsselungsfunktion von id auslagern und / speziell behandeln (z. B. stattdessen einen Platzhalter festlegen).

Fragen Sie 1 oder 2?
Der Titel ist 2 und der Inhalt ist 1

<code>example.com/view/06XBvOuYTbVE9pH8t%2FKJg%3D%3D.html
array(
    '/view/<id:[^.]*>.html'=>'site/view?id=<id>'
)</code>
Nach dem Login kopieren
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