2015-01-14 58 views
0

我引述指南:如何獲得乾淨的URL在yii2像``交/ 100``

根據urlManager配置,創建的URL可能看起來像下面的(或其他格式)中的一個。如果稍後請求創建的URL,它仍將被解析回原始路由和查詢參數值。

/index.php?r=post/view&id=100 
/index.php/post/100 
/posts/100 

我對沒有index.php的第三選項或第二選項感興趣。但我怎麼能得到它? 我有.htaccess是刪除index.php(我可能需要一些Nginx,但不知道什麼和如何,我從來沒有使用它)。 而我有漂亮的網址集:

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
], 

接下來是什麼?

我曾問the same question上yii2論壇,但我沒有答案:(

回答

1

你不需要在.htaccessNginx任何改變這個目的

index.php已經與該設置刪除:

'showScriptName' => false, 

漂亮的URL已經與該行啓用10

這意味着將不會生成類似?r=post/view的網址。

剩下的唯一東西就是配置rules

如果我們有PostController及其作用viewid作爲主鍵,沒有index.php秒選擇將是:

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
     'post/<id:\d+>' => 'post/view', 
    ], 
], 

對於第三個選項只是在規則的左邊添加s

'posts/<id:\d+>' => 'post/view', 

官方文件涵蓋了here

+1

非常感謝你/網絡前綴! –

+0

@arogachev你在上面提到了一個很好的答案。我還需要一些規則上的幫助。我在web/theme/demo(主題名稱)下使用了一個模板,我想要移除web/index.php並僅放置基本我應該得到主頁,請幫助我。 – user3172663

0

爲了消除你需要你的Web服務器指向該子目錄,而不是項目的根