ThhinkPHP5隐藏入口文件index.php
?
原文鏈接1:https://blog.csdn.net/lw545034502/article/details/79374172/
原文鏈接2:https://www.cnblogs.com/chq3272991/p/5757673.html
1.Tp3.2.3中有幾種路由模式
注:每種模式后面括號(hào)內(nèi)的0,1,2,3代表TP中對(duì)應(yīng)的編號(hào)
? 第一種:普? 通? ?模式(0):www.tp.nn/index.php?m=Home&c=Index&a=index
? ????????????????? ? 缺點(diǎn):URL地址中顯示內(nèi)容太多,不安全
? 第二種:pathinfo 模式(1):www.tp.nn/index.php/Home/Index/index??默認(rèn)模式
????????????????????? 優(yōu)點(diǎn):簡化了URL地址
? 第三種:rewrite? 模式(2):www.tp.nn/Home/Index/index? ? ? ? ? ??個(gè)人建議使用模式
????????????????????? 優(yōu)點(diǎn):簡短,隱秘 (目錄中不顯示index.php)
??????????????????????使用rewrite模式需要兩步操作:? ??
- ?apache中開啟rewrite模塊,修改配置文件? ??
- ?將源碼包中的.htaccess文件復(fù)制到項(xiàng)目根目錄
?????? 第四種:兼? 容? ?模式(3):www.tp.nn/index.php?s=/Home/Index/index
???????一般不使用該模式,只有當(dāng)某些古老主機(jī)不支持pathinfo和rewrite模式,或者Apache沒有開啟pathinfo時(shí)使用。
?
?
?
?
?
2.TP5中apache隱藏入口文件
官方介紹是這樣的:http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145250
可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務(wù)器的重寫規(guī)則。
以Apache為例,需要在入口文件的同級(jí)添加.htaccess文件(官方默認(rèn)自帶了該文件),內(nèi)容如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>接下來就可以使用下面的URL地址訪問了
http://tp5.com/index/index/index http://tp5.com/index/index/hello如果你使用的apache版本使用上面的方式無法正常隱藏index.php,可以嘗試使用下面的方式配置.htaccess文件:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule> 但是還是不行,查到這么一篇文章(http://bbs.php100.com/simple/?t300372.html): Apache Rewrite 擬靜態(tài)配置 1、mod_rewrite 簡介和配置 Rewirte主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn)和隱藏真實(shí)地址,基于Perl語言的正則 表達(dá)式規(guī)范。平時(shí)幫助我們實(shí)現(xiàn)擬靜態(tài),擬目錄,域名跳轉(zhuǎn),防止盜鏈等 如一個(gè)普通訪問地址為?? ?? */php100.php?id=2 可以轉(zhuǎn)成: ?? */PHP100_2.html 或轉(zhuǎn)成: ?? */PHP100_2/ Apache配置: 支持httpd.conf 配置和目錄 .htaccess配置 啟用rewrite # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 # LoadModule rewrite_module modules/mod_rewrite.so 啟用.htaccess AllowOverride None????修改為: AllowOverride All 2、mod_rewrite 規(guī)則的使用 RewriteEngine on RewriteCond %{HTTP_HOST} !^www.php100.com??[NC] RewriteRule?? ^/(.*) http://www.php100.com/ [L] 啟動(dòng)rewrite引擎 判斷主機(jī) 跳轉(zhuǎn)到 RewriteEngine on RewriteRule ^/test([0-9]*).html$ /test.php?id=$1 RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R] 3、mod_rewrite 規(guī)則修正符 1) R 強(qiáng)制外部重定向 2) F 禁用URL,返回403HTTP狀態(tài)碼。 3) G 強(qiáng)制URL為GONE,返回410HTTP狀態(tài)碼。 4) P 強(qiáng)制使用代理轉(zhuǎn)發(fā)。 5) L 表明當(dāng)前規(guī)則是最后一條規(guī)則,停止分析以后規(guī)則的重寫。 6) N 重新從第一條規(guī)則開始運(yùn)行重寫過程。 7) C 與下一條規(guī)則關(guān)聯(lián) 如果規(guī)則匹配則正常處理,以下修正符無效 8) T=MIME-type(force MIME type) 強(qiáng)制MIME類型 9) NS??只用于不是內(nèi)部子請(qǐng)求 10) NC 不區(qū)分大小寫 11) QSA 追加請(qǐng)求字符串 12) NE 不在輸出轉(zhuǎn)義特殊字符?? \%3d$1??等價(jià)于 =$1 ----------------------------------------------------------------------------- 也就是最后還要補(bǔ)充這么處理:把 #LoadModule rewrite_module modules/mod_rewrite.so 前面的#去掉,?
再把權(quán)限AllowOverride None都改為AllowOverride All ,重啟apache
總結(jié)
以上是生活随笔為你收集整理的ThhinkPHP5隐藏入口文件index.php的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用php操作qq第三方登录
- 下一篇: 配置php7.2.4支持swoole2.