2015-12-06 52 views
-1

我有一個問題.. 我使用啓用prettyUrl的yii2入門工具包。 它在我的本地主機上運行良好。 但是,當我上傳到我的服務器時,它不起作用。Yii2 prettyUrl不起作用

這裏是我的代碼...

.httacces

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php 

base.php

... 
'components' => [ 

    'urlManager'=>require(__DIR__.'/_urlManager.php') 
], 
... 

_urlManager.php

<?php 
return [ 
    'class'=>'yii\web\UrlManager', 
    'enablePrettyUrl'=>true, 
    'showScriptName'=>false, 
    'rules'=>[ 
     // url rules 
    '<controller:\w+>/<id:\d+>' => '<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
    ] 
]; 

到目前爲止,我只是禁用prettyUrl而它的工作ks罰款.. 爲什麼我的prettyUrl不工作呢? 有什麼建議嗎?

回答

1

嘗試檢查在您的Web服務器中是否啓用了mod_rewrite。在Apache中您應該將AllowOverride指令設置爲ALL

你應該看到這樣的事情

<Directory "/path/to/the/site/directory/"> 
    Options Indexes 
    FollowSymLinks MultiViews 
    AllowOverride All 
    Require all granted 
</Directory> 
1

可能是O.S.的路徑相關的問題

嘗試路徑indipendent這樣

... 
'components' => [ 
    'urlManager'=>require(__DIR__. DIRECTORY_SEPARATOR . '_urlManager.php') 
], 

...

0
you have wrong syntax at rules inside urlManager, it must be like: 


      'rules' => array(
       '<controller:\w+>/<id:\d+>' => '<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>',),