thinkphp 通过.htaccess设置 去掉url 中的index.php后,admin登录后打不开

通过.htaccess 和 config.php (App/Common/Conf目录下) 设置
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');

第1个回答  2018-06-12
改成但入口文件吧。删除admin.php
在入口文件添加 define('BIND_MODULE','Admin').追问

入口文件添加 define('BIND_MODULE','Admin').后,
默认打开的是后台了,前台没有了,

本回答被网友采纳
第2个回答  2018-06-12
你登陆成功之后路径是怎么写的追问

/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>

thinkphp站点下怎么隐藏前台和后台的入口文件index.php,admin.php
所以需要准备两个域名,分别访问前后台,然后在.htaccess文件中通过匹配域名的方式来决定进入哪个规则,所以配置成了下面这样:<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond...

thinkphp怎么去掉url中的index
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php\/$1 [QSA,PT,L]<\/IfModule>[ IIS ]如果你的服务器环境支持ISAPI...

thinkphp无法访问原来php可以正常访问的URL地址?
模块问题: 如果你使用了 ThinkPHP 的模块功能,确保你在 URL 中正确指定了模块。模块通常会作为 URL 的一部分,例如:\/index.php\/module\/controller\/action。重写规则: 如果你使用了 URL 重写(URL Rewrite),确保你的服务器配置正确。Apache 使用 .htaccess 文件,而 Nginx 使用配置文件。确保文件存...

ThinkPHP的Rewrite怎么设置。 下载的某个开源CMS,URLRewrite规则没有...
掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规 则。如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php\/$...

MAC Nginx + PHP 使用ThinkPHP怎么去掉index.php
.htaccess文件代码 deny from all Redirect permanent \/index.php \/ order deny,allow 或参考ThinkPHP3.0完全开发手册 16.2 隐藏index.php

ThinkPHP 后台Admin模块路由和URL重写问题
你即然已经用了 url_model = 2 配置模式, htaccess 文件就可以不用这样写了。把后面的 \/$ 去掉,只留下 index.php 就可以了。

怎么去掉百度主页后缀index.php
使用URL重定向 举个例子 这是thinkphp的.htaccess URL重定向 <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php\/$1 [QSA,PT,L]<\/IfModule> ...

IIS下 thinkphp 默认访问index.html 同时隐藏index.php
在conf文件加下找到convention.php文件配置一下,开启URL重写机制 然后创建.htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php\/$1 [QSA,PT,L]<\/IfModule> ...

thinkphp no input file specified.怎么去掉index.php
.htaccess文件中的 RewriteRule ^(.*)$ index.php\/$1 [QSA,PT,L]在默认情况下会导致No input file specified.修改成 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]问题解决。

求西部数码虚拟空间里如何去掉 thinkphp 的 index.php
这样路由重写。开启rewrite功能,然后配置一个.htaccess文件即可

相似回答