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重寫)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。