thinkPHP5中怎么隱藏入口文件

一、環境準備

在進行URL隱藏之前,我們需要先檢查一下本地環境是否支持偽靜態功能和URL重寫功能,這樣才能順利進行URL隱藏操作。首先我們要確保安裝了apache或者nginx等web服務器,然后在配置文件中啟用偽靜態和URL重寫功能,這樣才能使得框架識別生成美化后的URL。

二、開啟URL隱藏

  1. 打開配置文件

    立即學習PHP免費學習筆記(深入)”;

在thinkphp5的配置文件中,找到app.php文件,找到url_html_suffix配置項,將其設置為空字符串,即:

'url_html_suffix'??=>??''

這樣就允許URL不帶后綴了。

  1. 配置路由

通過在thinkphp5中配置路由規則,訪問URL可以映射到相應的控制器或操作方法。我們需要針對每個控制器或操作方法進行對應的路由設置,將其對應的URL映射到一個有意義的內容上,這樣才能使得隱藏的效果發揮出來,例如:

Route::get('news/:id','index/index/news',[],['id'=>'d+']);

這樣,訪問/news/1這個URL時,就會自動調用index控制器的news操作方法,并將請求參數id設置為1。

  1. 配置服務器

在Apache或者Nginx中也要進行相應的配置。以Apache為例,在.htaccess中添加以下內容:

RewriteEngine?on RewriteCond?%{REQUEST_FILENAME}?!-d RewriteCond?%{REQUEST_FILENAME}?!-f RewriteRule?^(.*)$?index.php?s=/$1?[QSA,PT,L]

這段代碼中,RewriteEngine on是開啟Apache的URL重寫功能;RewriteCond %{REQUEST_FILENAME} !-d和RewriteCond %{REQUEST_FILENAME} !-f是排除掉訪問文件和目錄的請求,避免對靜態資源的訪問造成影響;最后RewriteRule用于將URL指向thinkphp入口文件index.php,并帶上路由信息。

三、附加功能

  1. 設置URL后綴

我們可以通過設置URL后綴進一步加強應用的安全性。例如,可以將所有的URL后綴設置成.shtml、.html、.shtml等,這樣可以有效避免對我們的應用造成攻擊。

可以在配置文件中,找到url_html_suffix選項并加上相應的后綴即可,例如:

'url_html_suffix'??=>??'shtml|html|htm'
  1. 自動識別URL

在Route類的register方法中添加一個路由規則,以便框架可以自動解析URL。例如:

if?(is_file(APP_PATH?.?'route.php'))?{ Route::get('/',?'index/index'); Route::get('build',?'index/build'); include_once?APP_PATH?.?'route.php'; }

這樣,如果有符合規則的URL,將自動轉發到其對應的控制器或操作方法。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享