2016-11-30 53 views
0

取消註釋enablePrettyUrl後之後,得到404弄404錯誤取消註釋enablePrettyUrl YII2

例如:

所請求的網址/網站/指數在此服務器上找到。

的Apache/2.4.7(Ubuntu的)在yiibasic.com服務器端口80

當我再次發表評論它,一切工作

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

無法理解的問題是什麼。
htaccess的:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . index.php 
+0

請添加Apache配置和日誌。 – raina77ow

+0

問題編輯 – wiaim

回答

0

的(Yii2)URL管理器支持兩種URL格式:

默認的URL格式; 漂亮的URL格式。

默認情況下 'enablePrettyUrl' 設置爲false,這意味着該URL的格式

your/index.php?r=post%2Fview&id=100 

如果取消註釋 'enablePrettyUrl'=>真實,

'components' => [ 
    'urlManager' => [ 
    //'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
    ], 
    ], 
] 

您啓用格式prettyUrl像:

/index.php/post/100 

像你容易看到這兩個格式是不同的,所以一個EXPL基於格式ICT調用返回404錯誤。當你改變urlManager格式啓用或禁用漂亮的網址..

你可以調用的URL避免使用urlHelper

use yii\helpers\Url; 
echo Url::to(['post/view', 'id' => 100]); 

這個幫手Yii2這個問題根據在美麗的URL能夠使用

狀態創建正確的網址,您在這裏可以找到http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html

+0

我應該在哪裏使用這個幫手? 在配置或每個文件中,澄清請 – wiaim

+0

Url :: to(9必須在每次調用中使用,以避免錯誤,如果您更改prettyUrl狀態..我已添加一個鏈接回答簡要指南yii2路由 – scaisEdge

0

yii2路由的簡要指南使用基本templa在./web文件夾中添加.htaccess文件(如果後te),則必須在web.php配置文件的urlManager部分添加一些規則...請參閱下面的

'urlManager' => [ 
      'enablePrettyUrl' => true, 
      'showScriptName' => false, 
      'enableStrictParsing' => false, 
      'rules' => array(
       '<controller:\w+>/<id:\d+>' => '<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
      ), 
     ],