ThinkPHP框架中怎么隐藏index.php

ThinkPHP框架中怎么隐藏index.php,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先修改配置文件:

ThinkPHP框架中怎么隐藏index.php

'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写'URL_MODEL' => 2, // URL访问模式,可选参数0、1、2、3,代表以下四种模式:// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 默认为PATHINFO 模式

Nginx

推荐:

location/{
try_files$uri$uri//index.php?s=$uri&$args;
}

意思是:如果第一个$uri不存在,就访问$uri/;如果$uri/还不存在,访问/index.php?s=$uri&$args。可以后面跟很多个。

try_files
语法:try_filesfile1[file2...filen]fallback
默认值:无
作用域:location

再例如:

try_files$uri=404

什么意思呢?uri不能成功访问,那好,那就给你个404吧。

但是在网上找到的文章大部分是这样配置的:

location/{
if(!-e$request_filename){
rewrite^/(.*)$/index.php?/$1last;
break;
}
}

实际上不可行。

Apache

在根目录新建.htaccess文件:

<IfModulemod_rewrite.c>
Options+FollowSymlinks
RewriteEngineOn
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule^(.*)$index.php/$1[QSA,PT,L]
</IfModule>

IIS环境

如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

<rewrite>
<rules>
<rulename="OrgPage"stopProcessing="true">
<matchurl="^(.*)$"/>
<conditionslogicalGrouping="MatchAll">
<addinput="{HTTP_HOST}"pattern="^(.*)$"/>
<addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
<addinput="{REQUEST_FILENAME}”matchType="IsDirectory"negate="true"/>
</conditions>
<actiontype="Rewrite"url="index.php/{R:1}"/>
</rule>
</rules>
</rewrite>

附录

Nginx完整配置文

test.com.conf
server
{
listen80;
server_nametest.com;
indexindex.phpindex.html;
root/wwwroot/test.com/;
#unlesstherequestisforavalidfile(image,js,css,etc.),sendtobootstrap
location/{
try_files$uri$uri//index.php?s=$uri&$args;
}
location~\.php
{
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
#fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
set$path_info"";
set$real_script_name$fastcgi_script_name;
if($fastcgi_script_name~"^(.+?\.php)(/.+)$"){
set$real_script_name$1;
set$path_info$2;
}
fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;
fastcgi_paramSCRIPT_NAME$real_script_name;
fastcgi_paramPATH_INFO$path_info;
}
location/status{
stub_statuson;
access_logoff;
}
location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires24h;
}
location~.*\.(js|css)?$
{
expires12h;
}
if($fastcgi_script_name~\..*\/.*php){
return403;
}
access_loglogs/test.com_access.logmain;
error_loglogs/test.com_error.lognotice;
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2021-07-09 21:19:17
收藏
分享
海报
0 条评论
170
上一篇:Springboot连接Redis的详细教程 下一篇:thinkPHP2.1中怎么自定义标签库
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码