1. 程式人生 > 實用技巧 >Thinkphp5 如何隱藏入口檔案index.php(URL重寫)

Thinkphp5 如何隱藏入口檔案index.php(URL重寫)

大家好,我是Yangrl.

路由在框架中的作用打個比方的話,路由好比是WEB應用的總排程室,對於訪問的URL地址,路由可以拒絕或者接受某個URL請求,並進行分發排程,而且還有一個副作用是因為路由規則可以隨意定義,因此可以讓你的URL請求地址更優雅,因為不會暴露實際的URL地址,也就意味著更安全——《ThinkPHP5路由完全指南》

在之前,比如我們要訪問index 模組下的 Index控制器 下的index方法,在vhost(虛擬主機/虛擬域名)下,是這樣的繁瑣的一行URL地址:

tp5.com/index.php/index/Index/index

不舒服,不優雅(嘖嘖)對吧?所以我們學習路由,可以簡化,可以DIY,不僅舒服好看,還提升了安全性等方面。

開始學習TP5路由部分,先記下隱藏入口檔案index.php也就是URL重寫的方法:

一.載入httpd.conf配置檔案中mod_rewrite.so模組:

如果是整合環境,大概是已經開啟了,我用的phpStudy 2018,預設開啟了,地址在

碟符:\phpStudy\PHPTutorial\Apache\conf->CTRL+F搜尋:mod_rewrite.so->如果前面有#號,刪掉就表示載入了該模組。

二. 將AllowOverride None 的None改為 All:

這在phpStudy中也是預設ALL的,搜尋AllowOverride會發現不止一個,那怎麼選?改哪一個?你如果不確定,就都改!哈哈哈哈哈哈,其實我覺得就是第三步下面的directory中的allowoverride,見下圖。

三. 搜尋DocumentRoot 將根目錄設定成你的入口檔案所在目錄:

預設是public目錄.

四.修改.htaccess檔案:

把下面的內容儲存為.htaccess檔案放到應用入口檔案的同級目錄下,就在public目錄。

(其實現在的TP5版本.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>

五.重啟Apache伺服器:

ojbk.

環境:phpStudy 2018/ThinkPHP5.0.14/php7/Apache

(如果是其他伺服器,可參閱官方手冊 URL重寫

以上這篇Thinkphp5 如何隱藏入口檔案index.php(URL重寫)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。