Windows2003 IIS6下實現偽靜態的方法有很多:一種通過IIS的404處理機制來實現(缺陷是搜索結果頁分頁錯誤),這比ISAPI_ReWrite要方便,可是對搜索引擎的友好度可圈可點,暫不推薦;還有一種是通過服務器端安裝偽靜態組件實現,這種也是現在最常用的。當然,你如果是LINUX服務器,那就簡單多了,直接使用Apache的Mode Rewrite和.htaccess配合即可。
為什么要使用偽靜態?
1.最主要的就是通過偽靜態來改變網站URL結構,增強網站對搜索引擎的友好度。對搜索引擎來說,靜態的URL更受搜索引擎蜘蛛(Spider)的歡迎,也更方便Spider來抓取網頁上的相關內容。
2.保證網站內容的實時更新,這樣Spider來爬的時候,就不會錯過你網站更多精彩的內容。另外,相對真靜態來說,也省去頻繁生成靜態網頁對硬盤的傷了。
3.極大方便了SEO,加強了網站信任度,對你網站的搜索引擎排名來說,可謂功不可沒。
很多朋友在研究SEO的時候,因為有些技術原因,偽靜態卻成了最大的門檻。下面我就分享一下我的WordPress偽靜態的方法,幫你省點事,少些彎路,效果嘛,我的博客就是個很好的例子,包括困擾很多站長朋友的分頁問題也完美解決。
WordPress偽靜態Windows2003 IIS6下配置方法:
1.下載WordPress URL Rewrite組件
發布頁:http://www.binaryfortress.com/wordpress-url-rewrite
WordPress URL Rewrite主要功能與特色:完全無需人工干預,全自動重寫URL,只需要在后臺設置好固定鏈接(Permalinks)形式,就能直接使用,就像linux下用.htaccess一樣。可以使用在一級目錄和子目錄,也可以排除不需要重寫的目錄。這個非常方便,對于某些目錄不需要URL重寫的就將其排除,不會造成無法訪問。因為全自動,所以免去了在寫重寫規則時候遇到的規則重復造成部分目錄和文件無法實現的情況。我想,很多站長都遇到過這種情況吧,當然我也有過,那個叫折騰來著。
2.安裝WordPress URL Rewrite組件
把下載的壓縮包解壓到任何地方,只要保證WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本對應為64.dll)在同一文件夾下就可以了。
然后打開WordPressURLRewrite.ini設置你的博客目錄,以及需要排除的目錄,這里就不詳細說了,Readme.txt里有詳細說明,有什么不清楚的地方可以給我留言。
接下來,在IIS中選擇相應的站點,在ISAPI篩選器中加載WordPressURLRewrite32.dll就可以了,加載完不用重啟IIS,可以停掉網站再啟動。
注意:要給dll所在的目錄加上IIS_WPG組的寫入權限,否則無法加載對應dll文件。
如果你的文章、欄目、tag別名均是用的英文的話,那到這里就OK了,下面是針對特殊情況的解決辦法。
存在的問題:
(1) 中文的tag無法訪問
解決辦法:需要使用ISAPI_Rewrite來寫一條規則:
RewriteRule /tag/(.*) /index/.php/?tag=$1
(2) 含有中文的網址也是不能訪問的
3.安裝ISAPI_Rewrite:
網站根目錄下新建立一個httpd.ini文件,用記事本或是emeditor打開,規則寫在httpd.ini里,如下:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /tag/(.*)/ /index/.php/?tag=$1
現在中文tag是能訪問了,但是還是存在問題。
存在的問題:
(1) tag頁面的文章超過1頁,翻頁時都不能訪問
解決辦法:修改這條規則為:RewriteRule /tag/[^/]+)/([^/]+)/?([0-9]+)?/ /index.php?tag=$1&paged=$3 [L]
但是修改之后中文tag又不能訪問了,別擔心,接著看下一步。
4.修改wp-include中的classes.php
繼續修改第三步中的問題,因為修改Rewrite規則之后中文tag還是不能訪問,含有中文的網址也是不能訪問。最好使用專門的PHP編輯器工具,如EditPlus,我用的是emeditor。
修改WP-include中的classes.php
原代碼:
$pathinfo = $_SERVER['PATH_INFO'];
替換為:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
原代碼:
$req_uri = $_SERVER['REQUEST_URI'];
替換為:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");
修改后,保存下,然后將保存后的classes.php文件上傳并覆蓋原文件即可,這里需要注意文件保存格式。
我地個乖乖,好長的文章,總算結束了,有啥不明白的盡管M我!
附:常用WordPress固定鏈接格式:
1)/%postname%/
2)/%year%/%monthnum%/%postname%/
3)/post/%post_id%.html
4)/%year%/%monthnum%/%day%/%postname%/
5)/%year%/%monthnum%/%day%/%postname%.html
個人推薦前3種了,URL相對搜索引擎來說比較友好,辛苦下自己測試了,很容易理解。
最后,要說明的是,使用偽靜態后將占用一定量的CPU占有率,大量使用將導致CPU超負荷,這是偽靜態表現不好的地方。可是,當你的網站真正流量起來收益后,我想,升級一下硬件裝備,這都不是什么難題了。
新聞熱點
疑難解答