2015-12-18 8 views
5

Ich benutze yii2.Ich habe ein Problem im Zusammenhang mit URL-Struktur. Wie ich URL-Struktur in Yii2 meine aktuelle URL angegeben wird unterWie URL-Parameter wie Verzeichnis in Yii2 ändern?

http://localhost/advanced/posts/view?id=1 

Meine erwartete URL ist

http://localhost/advanced/posts/view/id/1 

ändern kann ich den folgenden Link folgen Standard-URL von Yii2

Yii2 htaccess - How to hide frontend/web and backend/web COMPLETELY

zu ändern
+0

Satz enableprettyurl auf true in der Konfiguration –

+0

@InsaneSkull ziemlich url bereits aktiviert ist, denke ich. Ansonsten wird seine "aktuelle URL" nicht funktionieren. –

+0

prettyurl bereits aktiviert –

Antwort

4

Web.php

'urlManager' => [ 
     'showScriptName' => false, 
     'enablePrettyUrl' => true, 
     'enableStrictParsing' => false, 
     'rules' => [ 
      '<controller>/<action>/<id:d+>' => '<controller>/<action>' 
     ], 
    ], 

Wenn Sie alphanumerischen Parameter haben, dann verwenden Sie.

'urlManager' => [ 
      'showScriptName' => false, 
      'enablePrettyUrl' => true, 
      'enableStrictParsing' => false, 
      'rules' => [ 
       '<controller>/<action>/<id:w+>' => '<controller>/<action>' 
      ], 
     ], 

Für mehr Informationen, klicken URL Not Accepting Alpha Numeric Paramater

+0

Schlage vor, dies anstelle deiner Regel zu verwenden; ''//' => '/'', es ist genauer und erlaubt keine Buchstaben in der ID –

+0

Ok. @ JoeMiller. Aber warum habe ich '' geschrieben, weil die Parameter wie 41a sein werden. Bedeutet alphanumerisch. Dann kann es hilfreich sein. In '' werden Alpha-Zahlen nicht akzeptiert. –

+0

Nur weil er eine ID als Parameter verwendet, sind die IDs normalerweise nur numerisch, so dass sie automatisch in der Datenbank inkrementieren können. Andernfalls wäre es besser, '' zu verwenden, was normale Wortzeichen (Buchstaben und Zahlen) erlaubt. . Wenn Sie nur '[a-z0-9]' haben, dann erlaubt es keine internationalen Zeichen, während ich denke 'w +' wird. –

2
'components' => [ 
    'urlManager' => [    
     'showScriptName' => false, // Disable index.php 
     'enablePrettyUrl' => true, // Disable r= routes 
     'enableStrictParsing' => true, 
     'rules' => array(
       'mycategory/<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
       '<controller:\w+>/<id:\d+>' => '<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
       //Rules with Server Names 
       'http://admin.domain.com/login' => 'admin/user/login', 
       'http://www.domain.com/login' => 'site/login', 
       'http://<country:\w+>.domain.com/profile' => 'user/view', 
       '<controller:\w+>/<id:\d+>-<slug:[A-Za-z0-9 -_.]+>' => '<controller>/view', 
      ), 
    ], 
], 

und folgen Sie diesem Link: first link second link