php框架 - thinkphp 在隐藏index.php和Home模块时有问题

 晕晕的劳拉 发布于 2022-11-17 12:21

我想隐藏home和index.php
原来是这样的

http://localhost/index.php/Home/Index/test.html

然后我加了配置文件

'MODULE_ALLOW_LIST'     =>      array('Home'),
'DEFAULT_MODULE'        =>      'Home',
'URL_MODEL'             =>      '2',

目的是隐藏index.php和home,

但结果出来的是,

我很忧伤,

如果把配置文件改一下
只留

'MODULE_ALLOW_LIST'     =>      array('Home'),
'DEFAULT_MODULE'        =>      'Home',

可以访问,并且省略了Home

或者只留

'URL_MODEL'             =>      '2',

也可以访问,同时也省略了Index.php

为什么不能同时省略Home和index.php呢???

我现在的环境是 apache2.4.18+php7.0.4

rewrite我确定已经打开了.不知道各位大神怎么解决小弟的问题.

是不是Thinkphp在apache2.4.18下存在这种问题?其他都正常???

PS:::

1:rewrite 已经打开.

2:AllowOverride 所有都改成了All
]

3: .htaccess 文件我也有

4.thinkphp Application/Common/conf/config.php

2 个回答
  • 感觉你好像分组了。

    我只知道我的3.1.5 for php7上是这样设置的:

    'DEFAULT_GROUP' => 'Default',
    'DEFAULT_MODULE' => 'Index',
    'URL_MODEL' => 2,
    'APP_GROUP_MODE' => 1,//是否使用独立分组
    'APP_GROUP_PATH' => 'Application',//独立分组路径
    'APP_GROUP_LIST' => 'Default,Admin,Article',

    Application项目目录里必须有default目录,表示模块。DEFAULT_MODULE表示默认的controller。

    你把对应的配置改为3.2试下。

    2022-11-17 12:34 回答
  • 去除index.php

    1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置

    LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉

    2.AllowOverride None 讲None改为 All //在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为ALL)

    AllowOverride none 改 AllowOverride ALL
    Options None
    Order allow,deny
    Allow from all

    3.确保URL_MODEL设置为2,在项目的配置文件里写
    return Array(
    'URL_MODEL' => '2',
    );

    4 .htaccess文件必须放到跟目录下
    这个文件里面加:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    2022-11-17 12:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有