Yii2掉index.php?r=
Posted 这是一个很好的名字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2掉index.php?r=相关的知识,希望对你有一定的参考价值。
普通
首先确认apache2配置
1. 开启 apache 的 mod_rewrite 模块
去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号;
2. 修改 apache 的 AllowOverride
把 AllowOverride None 修改为 AllowOverride All;
在/config/web.php中 ’components‘=>[] 中添加如下代码:
‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘showScriptName‘ => false,//隐藏index.php //‘enableStrictParsing‘ => false, ‘suffix‘ => ‘.html‘,//后缀,如果设置了此项,那么浏览器地址栏就必须带上.html后缀,否则会报404错误 ‘rules‘ => [ //‘<controller:w+>/<action:w+>‘=>‘<controller>/<action>‘, ], ],
我们还需在index.php同级的目录下添加.htaccess文件:
打开记事本,输入以下代码:
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
然后保存在与入口文件index.php同级的目录下,也就是/web目录下,文件名自己填.htaccess,文件类型选择 所有文件 (*.*) ,然后保存即可。
最后测试OK了
高级
修改 advanced/backend/config/main.php
文件如下:
return [ ‘homeUrl‘ => ‘/admin‘, ‘components‘ => [ ‘request‘ => [ ‘baseUrl‘ => ‘/admin‘, ], ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘showScriptName‘ => false, ], ], ];
同样修改 advanced/frontend/config/main.php
文件:
return [ ‘homeUrl‘ => ‘/‘, ‘components‘ => [ ‘request‘ => [ ‘baseUrl‘ => ‘‘, ], ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘showScriptName‘ => false, ], ], ];
然后在 advanced/backend/web
目录中创建 .htaccess
文件,advanced/frontend/web
相同.htaccess
文件 内容如下:
# use mod_rewrite for pretty URL support RewriteEngine on # if a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward the request to index.php RewriteRule . index.php
至此,配置完毕.
以上是关于Yii2掉index.php?r=的主要内容,如果未能解决你的问题,请参考以下文章