2017-09-15 11:45:59 6226次浏览 5条回答 1 悬赏 10 金钱

我用的是yii2 基本版 前端能正常的配置路由,但是我新增加的模块admin 全部定位到首页了,请问模块路由怎么设置?
还是有些步骤我没有设置到
'urlManager' => [

        'enablePrettyUrl' => true,//true  开户伪URL重写 false 关闭
        'showScriptName' => false,//是否隐藏index.php
        'enableStrictParsing' => false,//启动url严格匹配模式
        'suffix' => ".htm",    //后缀.html  要设置请把//去除 对应后缀自己填写 .html或.htm或者不填
        'rules' => [
           
        ],
    ],

访问模块 http://www.xxx.com/index.php?r=admin/index/index 全部定位到首页,后端根本无法访问? 添加了模块怎么设置路由

'urlManager' => [

        'enablePrettyUrl' => true,//true  开户伪URL重写 false 关闭
        'showScriptName' => false,//是否隐藏index.php
        'enableStrictParsing' => false,//启动url严格匹配模式
        'suffix' => ".htm",    //后缀.html  要设置请把//去除 对应后缀自己填写 .html或.htm或者不填
        'rules' => [
            '<modules:\w+>/<controller:\w+>/<action:\w+>'=>'<modules>/<controller>/<action>',
            //"<controller:\w+>/<action:\w+>/<category:\d+>" => "<controller>/<action>",
            //"<modules:\w+>/<controller:\w+>/<action:\w+>/<cid:\d+>" => "<modules>/<controller>/<action>",
            //'<modules:\w+>' => '<modules>/system/index',
            //'index/designers/<category:\d+>'=>"index/designers",
            //'admin/index/index'=>"admin/index/index",
           // 'index/housecase/<hStyle:\d+>/<hHuxing:\d+>/<hArea:\d+>'=>'index/housecase',

            //"<modules:\w+>/<controller:\w+>/<action:\w+>" => "<modules>/<controller>/<action>",
            //"<modules:\w+>/<controller:\w+>/<action:\w+>" => "<modules>/<controller>/<action>",
            //"<controller:\w+>/<action:\w+>/<id:\d+>" => "<controller>/<action>",
            //"<controller:\w+>/<action:\w+>/<category:\d+>" => "<controller>/<action>"
        ],
    ],

这些是我设置过的,也不起作用

补充于 2018-10-23 10:34

已经找到原因,增加了模块,必须要在网站根目录下增加一个htaccess文件,默认从index.php文件跳转才得行;如果是默认的控制器就可以,增加了模块就必须要增加一个htaccess文件作为跳转

  • 回答于 2017-09-15 12:47 举报
    2 条回复
    回复于 2017-09-15 13:12 回复

    这样,直接Apache就提示Not Found

    The requested URL /admin/news/index was not found on this server. 未找到,是不是配置文件我还需要配置modules模块?

    回复于 2017-09-26 10:38 回复

    已经找到原因,增加了模块,必须要在网站根目录下增加一个htaccess文件,默认从index.php文件跳转才得行;如果是默认的控制器就可以,增加了模块就必须要增加一个htaccess文件作为跳转

  • 回答于 2017-09-15 16:20 举报

    web.php 还需要配置模块类似:

    'modules' => [
            'gridview' =>  [
                'class' => '\kartik\grid\Module'
            ],
    ]
    
    1 条回复
    回复于 2017-09-26 10:39 回复

    已经找到原因,增加了模块,必须要在网站根目录下增加一个htaccess文件,默认从index.php文件跳转才得行;如果是默认的控制器就可以,增加了模块就必须要增加一个htaccess文件作为跳转

    配置文件肯定是增加了modules 路径的,如果静态化了他就只找控制器和方法,不会去找模块,这个时候就需要htaccess文件去做跳转了

  • 回答于 2017-09-16 17:26 举报

    你的的规则写了是module/controller/action 所以要有module模块。
    如果不需要module的话可以这样写:

     'urlManager' => [
                'enablePrettyUrl' => true, // 启用美化URL
                'enableStrictParsing' => true, // 是否执行严格的url解析
                'showScriptName' => false, // 在URL路径中是否显示脚本入口文件
                'rules' => [
                    "<controller:\w+>/<action:\w+>"=>"<controller>/<action>",
                ],
            ],
    

    就直接在c层就好

    如果是需要模块的就要建立module(就一般和controller什么同级。然后哦配置模块),这个官网上有讲的很仔细的

    1 条回复
    回复于 2017-09-26 10:40 回复

    已经找到原因,增加了模块,必须要在网站根目录下增加一个htaccess文件,默认从index.php文件跳转才得行;如果是默认的控制器就可以,增加了模块就必须要增加一个htaccess文件作为跳转

    但是你说的官网地址在哪里呢,我都没有找到,可以作为参考一下,或许还有更好的方式实现,能贴一个地址吗?

  • 回答于 2018-01-08 12:59 举报

    能详细说下吗,我也遇到了这个问题,htaccess文件在web目录下应该已经有一个了呀

    1 条回复
    回复于 2018-10-23 10:34 回复

    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

  • 回答于 2018-06-12 07:58 举报

    先收藏,以后处理!

您需要登录后才可以回答。登录 | 立即注册
landong66
见习主管

landong66

注册时间:2015-01-29
最后登录:2020-04-16
在线时长:9小时3分
  • 粉丝2
  • 金钱115
  • 威望0
  • 积分205

热门问题