今天下午沒事,像以往一樣開始做seo的優化,當然牽扯到永久鏈接,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/%postname%/
我選擇了/%postname%.html,偽靜態,雖然現在貌似沒什么差別了,但還是該下吧。下面就出現了修改固定鏈接后,訪問文章會出現404錯誤,以前我都是apache做web服務器,所以只要apache下就三個個關鍵,即
wordpress對目錄下的.htaccess擁有讀寫權限
固定鏈接的目錄結構需要 Apache服務器的mod_rewrite模塊支持,所以在Apache配置文件httpd.conf中將 LoadModule rewrite_module modules/mod_rewrite.so設置為啟用。
同樣是Apache配置文件,其中對于站點目錄下的AllowOverride None的參數設置為All。當然修改完配置后,一定要重啟Apache服務。
由于是新配置的本地測試環境,2、3兩項問題同時出現,逐項更正設置后,固定鏈接的工作正常。
現在我用的nginix,所以也要修改nginix的ngnix.conf配置文件,讓其支持重定向
假設我的wordpress博客是的 server{}段是直接放到放到了nginx.conf (有的人為了方便管理,都習慣在單獨寫個vhost/目錄來存放每個網站的配置文件,這就要根據你自己的設置來添加了)
代碼如下:vi /your_nginx_path/conf/nginx.conf
按照nginix的正則表達式的規則,可參考:Nginx 的中文維基
^:匹配輸入字符的開始位置 $:匹配數日字符串的結束位置 +:匹配前面的子表達式一次或者多次 [0-9]:數字字符范圍 $1:調用變量在server{} 字段 中的 “root /websit/wwwroot/;”(這行就是指定網站所在目錄的) 這一行的下面 ,添加下面的內容:
代碼如下:
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;
}
新聞熱點
疑難解答