| SEF的教學(譯自官方論壇) |
|
|
| 作者是 站長 | |||
| 週三, 08 十二月 2004 14:09 | |||
|
文章出處:Mambo官方論壇 原文作者:Emir Sakic(Mambo Core Developer,http://www.sakic.net) 譯者:Eddy Chang(http://www.taiwanmambo.com/) 譯註:Search Engine Friendly(簡寫為SEF),即一種讓搜尋引擎更容易搜尋你的網站上的資料的技術。 SEF在Mambo中只能配合Apache使用。這是使用了mod_rewrite這個模組來讓伺服器正確的指向PHP中的檔案邏輯。這裡頭只有三行字在.htaccess檔案中,告訴mod_rewrite的指向的。 要啟用SEF支援: 1) 你必須使用Apache 2) 你必須啟用mod_rewrite(Apache中的設定) 3) 你的伺服器必需允許 .htaccess被覆蓋過 4) 設定$mosConfig_sef= "1"在configuration.php檔案裡(或是用全域設定) 5) 將htaccess.txt重新命名為.htaccess 你會發現sections/content/items會像下面的URLs顯示出來: http://www.site.com/content/view/5/2/ 然後元件的URLs會像這樣: http://www.site.com/component/optio...ntact/Itemid,3/ 疑難排除 如果你遇到了有關SEF的問題,請確認以下的疑難排除步驟: 1) 你必須是在Apache網站平台上執行 要確認這一項,請到Mambo管理後台 > 系統 > 系統資訊。伺服器的類型會列出來在Web Server的後面。SEF在IIS上無法啟動。 2) 你必須啟用mod_rewrite 要確認這一項,請到Mambo管理後台 > 系統 > 系統資訊。點按PHP資訊標籤。往下捲動到你找到Loaded Modules這一行。mod_rewrite應該會列在上面。如果找不著請詢問你的網站主機商是不是有啟用了mod_rewrite。 3) 你的主機必須允許.htaccess覆蓋 要確認這一項,把你的.htaccess檔案清空,然後寫入一個簡單的測試指令,範例如下: Redirect /google.html http://www.google.com 現在把你的瀏覽器指到http://www.yoursite.com/google.html,如果正確執行的話應該會被重新導向到google.com。 4) 設定$mosConfig_sef= "1"在configuration.php檔案裡 你也可以啟用SEF在 網站 > 全域設定 中。 5) 重新命名htaccess.txt成.htaccess 這可以用FTP程式來作這件事。注意點號是開頭!另外也要注意你不可以在Windows平台上作這件事,不過你可以直接重新命名。 另外你會有疑問怎麼樣讓你製作的CMTs (Components/Modules/Templates)具有符合SEF的效果: 你必須轉換所有在CMTs中的連結成SEF連結。這個是靠稱之為sefRelToAbs()的函式來完成的。 範例: 在你有連結或表單指向的程式碼中: index.php?option=com_contact&Itemid=$Itemid 現在你只要改寫成這樣: echo sefRelToAbs("index.php?option=com_contact&Itemid=$Itemid"); 就會轉換在相關的URL像這樣: http://www.domain.com/component/opt...ntact/Itemid,3/ 現在mod_rewrite就會指向Apache到index.php和sef.php,然後會有回轉的神奇效果。 這個功能會回復到原來的連結的樣子,如果SEF功能被關閉時,這是對你的CMTs之後都十分安全的作法。 注意SEF是預設被關閉的(OFF),而且如果你是用舊有的方式在執行Mambo時,在沒有啟用SEF時,在任何情況下都不會被改變。請確認你是不是有權 限設定這個,在張貼有關SEF不能用的相關文章時。我會刪除掉沒有確認以上五個步驟的張貼文章。因此:檢查一下你的php資訊,確定你是執行在\r Apache上,以及mod_rewrite模組是被載入的。然後檢查你是不是有重新命名htaccess.txt成.htaccess,再來就是\r configuration.php檔案中的SEF是不是有啟用。 如果你有興趣更進一步加強你的網站的SEF URLs像下面這樣: http://www.site.com/section/category/item/ 可以到這裡看一下SEF advance: http://www.sakic.net/index.php?opti...ore=sef_advance
|


