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; }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
如何快速解决ThinkPHP5.1出现MISS缓存未命中问题
如何快速解决ThinkPHP5.1出现MISS缓存未命中问题这篇文...
-
thinkphp 6.0 swoole扩展websocket使用教程
-
PHP之ThinkPHP框架,让你10分钟快速入门,还免费包教会哟
-
ThinkPHP5.0目录结构,作用及其初略说明
-
Thinkphp在IIS7.5里的伪静态代码,亲测,收藏
-
哪些PHP开源作品值得关注
-
开源学校教务管理系统
-
一次项目中Thinkphp绕过禁用函数的实战记录
-
thinkphp如何用中间件记录行为日志
-
thinkphp3.1与3.2的区别有哪些
thinkphp3.1与3.2的区别有哪些今天小编给大家分享一下t...