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=的主要内容,如果未能解决你的问题,请参考以下文章

Yii2.0 新建项目通用准备工作

Yii2自动生成model

Yii2.0配置pathinfo模式

yii2.0配置以pathinfo的形式访问

Yii2 使用查询参数渲染 url

Yii2的相关学习记录,后台模板和gii