站點地圖靜態生成功能
阿新 • • 發佈:2019-02-06
原來的站點地圖,因為啟用了偽靜態,所以直接偽靜態指向生成站點地圖的PHP檔案,HTML地圖無所謂,是正常的,而XML地圖,則一直不能顯示。從程式碼裡檢視,是正常的,後來用http狀態查詢發現,xml的返回狀態是
Content-Type: text/xml
而啟用偽靜態的sitemap.xml返回的狀態還是根html的程式碼返回狀態是一樣的
Content-Type: text/html; charset=utf-8
嘗試了很多辦法解決,發現用PHP返回header值也還是不行,必須靜態生成,需要在站點靜態生成的程式裡開啟對站點地圖的生成功能(原有功能檢查網站靜態生成方式:動態、真靜態、偽靜態,只有在真靜態的狀態才可以生成檔案)
$config['static'] != 2 && msgbox($language['page']['msg'][0],'html_make.php');
改成
$config['static'] != 2 && $_GET['event']!= 'sitemap' && msgbox($language['page']['msg'][0],'html_make.php');
靜態生成的話,即使開啟了偽靜態,也需要每次更新後手動生成下站點地圖
得出結論,除了HTML等檔案,其他型別的檔案,如果考慮到蜘蛛抓取什麼的原因的話,最好是不要偽靜態!!!因為偽靜態指向的其實也還是網頁!不是說你訪問的時候檔案字尾改為xml就返回xml型別的資料了!