【ThinkPHP5】URL隱藏入口文件

背景

心血來潮想用PHP寫個小項目,選用TP5位核心框架,然而訪問頁面的時候,需要老長一串url

localhost:8080/public/index.php/{命名空間}/{控制器}/{函數名}

老長一大段,而其中的public/index.php又是固定指定入口文件的,所以考慮是否可以重寫url來隱藏這一段。

方法(以本人的Linux上安裝的httpd爲例)

加載mod_rewrite.so模塊

查看自己的Apache是否已經啓用了該模塊,如果未啓用則去掉註釋#,配置文件在conf文件夾下的httpd.conf,不過該文件也引用了許多模塊配置文件,這些配置文件在conf.modules.d文件夾下,所以需要仔細看看每個文件,否則重複啓用可能會導致錯誤。

爲項目目錄配置路由重寫

Apache的配置文件httpd.conf下有許多DIrectory節點,每個節點內都有一些字段來標記該節點目錄的權限(具體每個我也不清楚= =)所以可以選擇創建一個新的的Directory節點,該路徑指向你項目的路徑

<Directory "your project path">
	Options +Indexes +FollowSymLinks +ExecCGI
	AllowOverride All
	Order allow,deny
	Allow from all
	Require all granted
</Directory>

這裏最重要的是第二句“AllowOverride All”

將public下的.htaccess文件與index.php移到根目錄

如題,移動後,對應的路徑,都要跟移動後的路徑對應起來(因爲原本配置的路徑是相對路徑,移動後如果不更改就會報錯)這裏具體怎麼改,網上一大堆,我也不知道htaccess的意義,在此也就不解釋了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章