背景
心血來潮想用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的意義,在此也就不解釋了。