Yii2 prettyUrl不起作用

时间:2015-12-06 05:11:58

标签: yii2

我有问题.. 我使用启用了prettyUrl的yii2入门套件。 它在我的localhost上运行良好。 但是当我上传到我的服务器时,它不起作用。

这是我的代码......

.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,它运行正常.. 为什么我的prettyUrl无论如何都无法工作? 有什么建议吗?

3 个答案:

答案 0 :(得分:1)

尝试检查您的网络服务器中是否启用了 mod_rewrite 。在Apache中,您应该将 AllowOverride 指令设置为 ALL

你应该看到类似的东西

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

答案 1 :(得分:1)

可能是路径相关的问题

尝试独立于O.S.的路径。像这样

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

...

答案 2 :(得分:0)

http