关于yii2在apache/nginx下隐藏index.php文件设置问题。 [ 未指定版本 ]
我在apache下设置的,
.htaccess
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php`
在web.php配置中添加
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'rules' => [
"<controller:\w+>/<action:\w+>/<id:\d+>"=>"<controller>/<action>",
"<controller:\w+>/<action:\w+>"=>"<controller>/<action>",
],
],
但打开网站的时候,提示错误:
Invalid Call – yii\base\InvalidCallException
Setting read-only property: yii\web\Application::urlManager
想知道这个是哪里的问题的? apache的配置应该是没有任何问题的。
另外,在nginx下又是如何配置的?
最佳答案
-
我找到正确的答案了,正确是在web.php里components的里面写上
'components' => [ 'urlManager' => [ //'class' => 'yii\web\UrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules'=>[ '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ], ], ],
共 1 条回复
其他 2 个回答
-
我的还是不行
'urlManager' => ['enablePrettyUrl' => true, 'showScriptName' => false,//隐藏index.php //‘enableStrictParsing‘ => false, // 'suffix' => '.html',//后缀,如果设置了此项,那么浏览器地址栏就必须带上.html后缀,否则会报404错误 'rules' => [ // '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ], ],
Options +FollowSymLinks
IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php
cfanbo
注册时间:2015-05-23
最后登录:2015-09-10
在线时长:11小时52分
最后登录:2015-09-10
在线时长:11小时52分
- 粉丝2
- 金钱110
- 威望0
- 积分220