2020/08/31

最新版 讓MAMP支援SSI的方法及注意事項 | 教學


最近接手一個案子,同事使用到SSI也就是include file的方式,必須在本機架設Server才可以使用,在MAC上設Server最簡單的方案是是MAMP,真的好用很簡單操作,免費版就很夠使用,安裝後才發現,MAMP預設include功能是關閉的,上網搜尋一下MAMP SSI,差點被自己笑死,出現的教學文 讓MAMP支援SSI的方法 居然是我寫的🤣,還真的完全沒印象了~~~

原本以為簡單照做就可以,想!不!到!!居然不行阿!!!

再上網爬文一下也有人遇到類似類似的問題,猜想不知道是MAC OS還是MAMP有改了預設的關係吧,最後試了好幾次,終於確認了最新的方式如下,希望也可以鞤助到其它捧油!順帶一提,我是用MAC,WINDOWS下的MAMP應該也是可以。


STEP 1. 下載&安裝

官網下載主程式,用MAMP PRO也OK,不過SSI是基本功能,MAMP就可以


STEP 2.  修改httpd.conf 

打開在conf/apache下的httpd.conf,將原本的517行的

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

拿掉註解改成

AddType text/html .shtml 
AddOutputFilter INCLUDES .shtml


STEP 3. 新增.htaccess檔

在根目錄也就是htdocs內新增一個純文字檔,內容為

AddType text/html .shtml 
AddHandler server-parsed .html 
AddHandler server-parsed .shtml 
Options Indexes FollowSymLinks Includes

存檔後命名為.htaccess,對,就是一個沒有檔名的htaccess檔的意思,因為是隱藏檔,在VS CODE的LIST內可以看到,在FINDER內不會出現,要顯示出來的話要用Shift+Command+. 的方式顯示隱藏檔


到這邊就可以使用基本的 <!--#include file="*.html" -->

但是!

我這次遇到其它的問題,由於同事的做法是跨資料夾嵌入,簡單說就是在a資料夾內的aa.html內嵌入b資料夾內的bb.html,不知道為什麼一直都會說失敗 [an error occurred while processing this directive],最後再看一下相關討論,寫法與路徑方式要改

要將原本的

<!--#include file="*.html" -->

改成

<!--#include virtual="*.html" -->

並且使用絕對路徑的方式,這樣就正常嚕!



0 意見:

張貼留言