thinkphp 通过.htaccess设置 去掉url 中的index.php后,admin登录后打不开
url中的index.php 和 home/index 全部隐形去掉后,
域名/admin.php打开登录成功后进不去 提示 “非法操作:Admin”,请问是哪里出了问题?
.htaccess设置如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/home/index/$1 [QSA,PT,L]
</IfModule>
config.php设置主要如下:
'URL_MODEL'=>2,
'MODULE_ALLOW_LIST' => array (
'Home',
'Admin',
'User'
),
'DEFAULT_MODULE' => 'Home', // 默认模块
'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称
'DEFAULT_ACTION' => 'index', // 默认操作名称
前台已经实现
域名/about.hrml
域名/news.html
这种最精简的url了
后台访问地址是 : 域名/admin.php
打开后跳转到: 域名/index.php/Admin/login/index.html
输入账户密码登录成功后跳转到 域名/Admin/index/index.html
提示"非法操作:Admin"
我在此页面的url域名后加index.php后登录进去了。地址如下
域名/index.php/Admin/index/index.html
然后点击每个栏目还是抱非常操作,又是url缺少index.php,一旦补全则正常。
请问改如何解决。
以下是几个文件设置的内容,看看对你们解决问题有无帮助
入口文件index.php和admin.php设置如下:
index.php:
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',true);
//define('BIND_MODULE','Home');//绑定Home模块到当前入口文件,可用于新增Home模块
// 定义应用目录
define('APP_PATH','./App/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
admin.php:
header('Location: /index.php/Admin/login/index.html'); 展开
在入口文件添加 define('BIND_MODULE','Admin').
入口文件添加 define('BIND_MODULE','Admin').后,
默认打开的是后台了,前台没有了,
/index.php/Admin/login/index.html
httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置
#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉
AllowOverride None 将None改为 All
在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为ALL)
<Directory "D:/server/apache/cgi-bin">
AllowOverride none 改 AllowOverride ALL
Options None
Order allow,deny
Allow from all
</Directory>确保URL_MODEL设置为2,在项目的配置文件里写
return Array(
'URL_MODEL' => '2',
);.htaccess文件必须放到跟目录下
这个文件里面加:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>