Yii去掉index.php?r=

时间:2021-09-02 23:03:06

目的:我只想去掉浏览器地址栏中的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‘=>[] 中添加如下代码:

1 ‘urlManager‘ => [
2             ‘enablePrettyUrl‘ => true,
3             ‘showScriptName‘ => false,//隐藏index.php 
4             //‘enableStrictParsing‘ => false,
5             ‘suffix‘ => ‘.html‘,//后缀,如果设置了此项,那么浏览器地址栏就必须带上.html后缀,否则会报404错误
6             ‘rules‘ => [
7                 //‘<controller:\w+>/<action:\w+>‘=>‘<controller>/<action>‘,
8             ],
9         ],

如果带了改了后缀这一下,请记得一定要给浏览器地址栏的路径最后面加上.html。

改了以上这些,我发现?r=这块可以用/代替访问了,但是想隐藏掉index.php还是不行。

我们还需在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了