2015-12-18 13 views
5

Sto usando yii2.ho riscontrato problemi relativi alla struttura dell'URL. Come posso cambiare la struttura degli URL in Yii2 mio URL corrente è riportata qui sottoCome modificare il parametro url come directory in Yii2?

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

mio URL atteso è

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

ho seguire il link seguente per modificare l'URL di default di Yii2

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

+0

set enableprettyurl true in configurazione –

+0

@InsaneSkull abbastanza url è già abilitato credo. Altrimenti il ​​suo "attuale URL" non funzionerà. –

+0

prettyurl già abilitato –

risposta

4

Web.php

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

Se si dispone di alfanumerico parametro, quindi utilizzare.

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

Per maggiori informazioni clicca URL Not Accepting Alpha Numeric Paramater

+0

Suggerisci di utilizzare questo al posto della regola; "// '=>' / '', è più preciso e non consente le lettere nell'id –

+0

Ok. @JoeMiller. Ma, perché ho scritto '' perché se i parametri saranno come 41a. Significa alfanumerico Quindi, può essere utile. In "", il parametro alfa numerica non è accettato. –

+0

Solo perché sta usando un id come parametro, gli ID sono normalmente solo numerici in modo che possano essere incrementati automaticamente nel database, altrimenti sarebbe meglio usare '', che permetterà qualsiasi normale carattere di parola (lettere e numeri) . Se hai solo '[a-z0-9]' allora non permetterà i caratteri internazionali, mentre penso che 'w +' lo farà. –

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', 
      ), 
    ], 
], 

e seguire questo link: first link second link

Problemi correlati