今天對公司臺灣主站的url地址進行優化.主站采用的是joomla,而joomla初建好后用的url對搜索引擎非常的不友好.
Joomla中的SEF說白了就是一個對URL的重寫的過程將原來參數眾多,層次很深的URL改寫為一個簡單的更容易被記住被搜索的URL。通過分析Joomla站點的URL結果就會發現規律很明顯:
????????????????? 域名+index.php?option=com_content&task=category§ionid=4&id=13&Itemid=27
以上就是一個最普通不過的URL,其中包含的元素有option(組件參數,告訴系統一下內容來自哪個組件)、task(任務參數,組件內執行什么任務上面的例子中代表執行分類列表,sectionid內容的單元號JOOMLA特有,id,itemid項目號)。Joomla本身就自帶一個URL優化的組件,也就是一個函數實現對上述地址的重寫為index.php/content/view/4/13/27.html,是不是貌似靜態,嚴格來說應該是偽裝的靜態。
我開啟了joomla自帶的sef,方法如下:
1. 必須使用apache作為你的服務器,IIS是不支持的。
2. 開啟apache的rewrite功能,加載重寫模塊
LoadModule rewrite_module modules/mod_rewrite.so
3. 設置<Directory "/htdocs/">中的AllowOverride None為AllowOverride All
4. 將htaccess.txt變為.htaccess.
5. 設置RewriteBase /為RewriteBase /site dir,將RewriteCond %{REQUEST_URI} ^(/ /component/option,com) [NC,OR] 修改為RewriteCond %{REQUEST_URI} ^(/site dir/component/option,com) [NC,OR]因為你的web不是放在root目錄下,而是放在site dir
6. Set $mosConfig_sef= "1" in configuration.php
如果你的joomla系統放在根目錄下,RewriteBase /不變,另外RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]不變,只需去掉前面的注釋即可。
然后重啟一下apache.
這時會發現地址確實被重寫了.變成了http://www.yourwebsite/content/view/286/這樣的.但正如上文所言,這只是偽靜態的.并且發生了404錯誤.
?
?
?