樂于分享
好東西不私藏

WordPress設置固定鏈接之偽靜態配置

這陣子網站剛備案成功,就急急忙忙的搬家到國內了,不得不說,國內的服務器速度確實是提上來了。但是對于一個小白站長老夜我來說,搬個家確實也是折騰了幾天,因為Nginx和Apache的配置方法不同,當時也不太了解他們之間的關系,導致網站一打開頁面就是404頁面,百度找了一圈都是千篇一律的答案,簡直服了,然后沒辦法,自己慢慢一邊找一邊查看相關資料,慢慢的終于配置成功了,相信不少小白站長和我一樣遇到這種問題,現在老夜已經完美解決,就把自己的經驗分享給大家,班門弄斧,如有不妥,歡迎指點。

大家都知道WordPress搭建好后默認的都是/?p=001這種鏈接格式的,雖然簡潔但是看著總有點不舒服,而且現在的網站大部分都是.html結尾的,就類似于一個頁面的格式,建成偽靜態,也不知道老夜我分析的對不對,查閱了一些資料有些人認為固定鏈接格式對網站的收錄并沒有幫助,又有一部分人認為偽靜態有助于SEO優化。關于為什么網站設置偽靜態,我的想法就簡單的多了——好看。老夜是個強迫癥,對那種特殊符號有偏見,因此網站搬家第一件事就是設置了偽靜態。下面就教大家正確的設置偽靜態。

首先,請確認你的Linux服務器安裝的是Nginx還是Apache,Windows服務器貌似是IIS,沒玩過不做教程,如果你網站運行在虛擬主機上,請詢問所在的空間商查看虛擬主機是Nginx還是Apache環境的,有些虛擬主機不支持rewrite模塊,無法進行下一步操作。個人理解如果網站根目錄有.htaccess文件的就一定是Apache,可以在.htaccess文件里面配置你的服務器參數、301跳轉之類的。對于分辨Nginx和Apache就不多說了,設置偽靜態之前先進入網站后臺,設置-固定連接里面進行鏈接設置。

wordpress固定鏈接設置技巧:

1、不要讓日期出現在固定鏈接里面,這基于兩個方面的考慮。一是如果數字出現在固定鏈接里面,等于提醒搜索引擎,這是很舊的內容了,沒必要再爬一遍了,如果網站更新頻率大請無視。另外一個原因是,假如你要修改文章的日期重新發布的話,鏈接地址就變了,也就是意味著你的反向鏈接,PR 等等都沒有了。

2、不要讓分類的鏈接出現在固定鏈接里面,這一點是很多人都會忽略的地方。讓分類出現在固定鏈接里面有兩個缺陷:一是一篇文章如果選擇了多個分類的話,則會出現多個鏈接地址,這很容易造成因為重復內容而被搜索引擎懲罰;二是有可能會造成關鍵詞堆砌而被搜索引擎懲罰。

3、鏈接不要過深,這一點經常看到。很多wordpress 用戶的固定鏈接是年/月/日/分類名/文章名。這種過于深的固定鏈接對搜索引擎是非常不友好的。

4、不要讓中文字符出現在固定鏈接里面,雖然現在的搜索引擎已經能識別URL地址里面的中文字符,但無論是從美觀上,還是從wordpress 優化的角度來看,都是非常差的。

wordpress固定鏈接設置的一些參數:

  • 1、/%year%/%monthnum%/%day%/%postname%/
  • 2、/%year%/%monthnum%/%postname%/
  • 3、/%year%/%monthnum%/%day%/%postname%.html
  • 4、/%year%/%monthnum%/%postname%.html
  • 5、/%category%/%postname%.html
  • 6、/%post_id%.html
  • 7、/%post_id%/
  • 8、/%postname%/
  • 9、/%postname%.html

將上述參數進行組合,即可得到wordpress的固定鏈接形式。老夜這里用的是/%post_id%.html,看個人喜好與取舍。

設置好固定鏈接后隨便打開一個站內文章發現全部404了,不要慌,教程才剛剛開始,下面帶來Nginx和Apache的正確配置。

Nginx :

在 /etc/nginx/nginx.conf文件的 loction?/ {} 中添加,對于那些服務器上運行多個站點情況,有些人會給每個站點單獨配置nginx,務必找到正確的conf文件進行配置。

操作前請提前備份之前的代碼。

代碼如下:

if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}

if (!-f $request_filename){
    rewrite (.*) /index.php;
}

如果出現網站排版錯誤,請及時刪除,并使用以下代碼。

#加入如下一條命令即可
try_files $uri $uri/ /index.php?$args;

修改之后重啟Nginx服務。

service nginx restart

Nginx教程結束。

Apache :

/etc/httpd/conf/httpd.config 文件

原因一:Apache中的rewrite模塊沒有開啟,去除這一行前面的#號就可以了

LoadModule rewrite_module modules/mod_rewrite.so

原因二:AllowOverride Not Enabled;服務器可能沒打開AllowOverride。如果httpd.config的AllowOverride設置的是None,那.htaccess將被忽略。找到以下2處位置并修改:

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html>
# … other directives…
AllowOverride All
</Directory>

修改完成后,要重啟Apache才能生效。

service httpd restart

Apache修改結束。

參考文章:https://www.cnblogs.com/whiterock/p/7232383.html

控制面板 :

修改后老夜又發現了一個更佳簡單的方法,如果你是在Linux服務器安裝了建站面板的話,一切就簡單的多了,這里用寶塔面板為例,真正完完全全的傻瓜式操作。

首先安裝號寶塔面板,進入面板,點擊直接配置,都無需找配置文件路徑了。

如果寶塔面板上運行多個站點,請按照下圖點擊網站-打開設置。

然后出現站點修改,找到偽靜態設置項,選擇WordPress保存,直接一鍵生成配置代碼。

配置完成,就是這么簡單。

修改固定連接后,再次打開網站點擊文章發現鏈接已經改變了,全部換成了.html結尾了,鏈接結構更美觀了。但是問題隨之而來,之前百度收錄的文章鏈接還是以前的就鏈接,通過舊鏈接進入的用戶就全是404界面了。為了不讓網站收錄掉完,請及時使用301重新定向,如果是新站請直接無視,老站因為文章太多重定向也是十分的麻煩,為了考慮小白的感受,代碼就不發了,百度了一下眼花繚亂的,這里我們直接用插件解決,插件叫WP Permalinks Migration。插件2013年就不在更新了,但是WordPress該版本還是完美支持的,在此感謝WordPress大學的昌萌提供的插件,WordPress插件后臺已經搜索不到這款插件了,文章底部已經打包,請自行下載。

關于插件的正確使用,請參考:https://www.wpdaxue.com/wp-permalinks-migration.html

WordPress固定鏈接的偽靜態設置到此結束,如有問題歡迎補充。教程僅針對向老夜這樣的小白站長,大佬請無視即可。

 

相關代碼以及插件均已打包,底部下載即可。

 






文件名稱:固定鏈接

文件大小:125.9 K

作者信息:夜雨聆風

更新日期:2018.1.16

點擊下載

本站文章均為手工撰寫未經允許謝絕轉載:夜雨聆風 » WordPress設置固定鏈接之偽靜態配置
支付寶掃碼打賞 微信打賞

如果文章對您有幫助,歡迎移至上方按鈕打賞……

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

×
訂閱圖標按鈕
羽毛球馆地板