wordpress固定連結

wordpress固定連結

固定連結(Permalink)是部落格日誌、分類及其他部落格內容列表的永久URL。其他部落格主人可以使用固定連結連結到你的文章上,你也可以在email中傳送某篇日誌的連結。所有日誌的URL應為永久性、固定不變的-這就是所謂的固定連結。

什麼是固定連結

固定連結(PermaLink)是部落格日誌、分類及其他部落格內容列表的永久URL。其他部落格主人可以使用固定連結連結到你的文章上,你也可以在email中傳送某篇日誌的連結。所有日誌的URL應為永久性、固定不變的-這就是所謂的固定連結。

固定連結的類型

默認形式(不美觀的)

如:http://example.com/?p=N這裡的N是PostID號。它能夠在所有伺服器環境下使用,但這種形式的URL看起來不是很好看。
mod_rewrite類型(美觀的)這些固定連結樣式可謂淺顯易懂、賞心悅目。雖然這種連結的格式多種多樣,但最常見的形式還是
category/post-name/或/year/month/day/post-name。這種類型的某些用戶移除了日期元素(日,月,年)以使得永久連結格式變得更精簡。

固定連結可在以下環境中工作:

具有mod_rewrite模組的Apache網路伺服器MicrosoftIIS7+帶有URLRewrite1.1的網路伺服器+作為FastCGI運行的模組與PHP5使用404處理程式或mod_rewrite或mod_magnet的LighttpdPATHINFO(完美的)PATHINFO固定連結形式跟mod_rewrite固定連結形式很相像,只有一點不同:前者插入了/index.php,如下:
/index.php/yyyy/mm/dd/post-name/除此之外,PATHINFO就跟mod_rewrite固定連結一樣完美了,其靈活性也很相似。mod_rewrite固定連結所能達到的效果,PATHINFO固定連結通過/index.php部分也能做到。

wordpress固定連結設定方法

進入wp後台->設定裡面的固定連結->自定義結構

wordpress固定連結的結構

這裡有幾個結構可以作為參考:

%year%日誌發表的年份,四位數字
%monthnum%日誌發表的月份
%day%日誌發表的日期
%hour%日誌發表的時間-小時
%minute%日誌發表的時間-分鐘
%second%日誌發表的時間-秒
%postname%日誌標題的縮略版本(日誌/頁面編輯界面上的日誌別名)。因此“ThisIsAGreatPost!”在URI中會變成this-is-a-great-post。
%post_id%日誌的唯一ID,如123
%category%分類名稱的縮略版本(添加新分類/編輯界面上的分類別名)。嵌套的子分類會作為嵌套子目錄出現在URI中。出於運行方面的考慮,不推薦以%category%作為固定連結的起始部分。
%tag%標籤名稱的縮略版本(添加新標籤/編輯界面上的標籤別名)。出於運行方面的考慮,不推薦以%tag%作為固定連結的起始部分。
%author%作者名稱的縮略版本.
既然知道了我們就可以對這些開始組合了。

幾種組合方式如下

/?p=%post_id%(默認的)
/%year%/%monthnum%/%day%/%postname%/(年/月日/日誌名)
/%year%/%monthnum%/%postname%/(年/月/日誌名)
/%monthnum%/%day%/%postname%/(月/日/日誌名)
/%year%/%monthnum%/%day%/%post_id%/(年/月日/日誌id號)
/%year%/%monthnum%/%post_id%/(年/月/日誌id號)
/%monthnum%/%day%/%post_id%/(月/日/日誌id號)
/archives/%post_id%(/archives/日誌id號)
/archives/%postname%(/archives/日誌名)
/%post_id%(/日誌id號)
/%postname%(/日誌名)
/%category%/%postname%.html(分類/日誌名.html)
/%category%/%postname%.htm(分類/日誌名.htm)
/%postname%.html(/日誌名.html)
/%postname%.htm(/日誌名.htm)
/%post_id%.html(/日誌id號.html)
/%post_id%.htm(/日誌id號.htm)
常用的就是以htm後者html方式結尾的。當然這個可以隨你的喜好自由改變。

使用固定連結的一些問題

常見的幾個問題

若是以/%category%/%postname%/這種方式來自定義固定連結的時候打開的網址可能會出現亂碼,可能會打不開頁面,那是因為分類目錄和文章名字是中文引起的,這樣我們可以使用英文的別名來解決。
在創建wordpress固定連結的時候會出現別名設定,選擇合適的英文或者拼音。
在發布文章的時候在檔案標題下方有一個固定連結,選擇編輯即可。

使用固定連結的必要條件

具有mod_rewrite模組的Apache網路伺服器在WordPress主目錄下激活FollowSymLinks選項允許FileInfodirectives(如AllowOverrideFileInfo或AllowOverrideAll)一個.htaccess檔案(若該檔案缺失,WordPress會嘗試在用戶激活美觀的固定連結時創建一個新檔案)如果你希望WordPress自動更新.htaccess檔案,需要為WordPress賦予該檔案的寫入許可權當你新建或更新了一個“美觀的”固定連結結構後,WordPress會生成重寫規則並嘗試將重寫規則插入適當的.htaccess檔案。如果WordPress無法將重寫規則插入.htaccess檔案,就會顯示Youshouldupdateyour.htaccessnow(請立即升級你的.htaccess檔案)這樣的信息,然後輸出重寫規則,讓你複製並貼上到檔案中(將規則置於檔案結尾處)。
在WordPress2.0以及更高版本中,你可能只需要執行一次以上動作,因為WordPress會在內部運行重寫規則。如果移動了WordPress主目錄的地址(部落格地址),就需要重複以上動作。
WordPress會與已有的.htaccess檔案合作愉快,也不會刪除任何已存在的重寫規則或其他指令。如果你有其它mod_rewrite規則,請將你的規則優先於WordPress生成的mod_rewrite規則。

win主機下的問題

“美觀的”固定連結通常會要求使用mod_rewrite,而IIS(常見於Windows伺服器)卻不支持mod_rewrite。(如果你在Windows上使用Apache2.0.54,mod_rewrite可能會運行,前提是要在apache\conf\httpd.conf.中激活mod_rewrite)。
使用IIS7並具備伺服器管理許可權時,可以使用Microsoft的URL重寫模組來代替mod_rewrite。雖然IIS7不完全兼容mod_rewrite,但它支持WordPress的固定連結。Microsoft的URL重寫模組安裝完畢後,在WordPress目錄下打開web.config檔案,將以下規則添加到system.webServer元素中:
<rewrite>
<rules>
<rulename="MainRule"stopProcessing="true">
<matchurl=".*"/>
<conditionslogicalGrouping="MatchAll">
<addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
<addinput="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/>
</conditions>
<actiontype="Rewrite"url="index.php"/>
</rule>
</rules>
</rewrite>
IIS網站上有一份關於Microsoft的URL重寫模組詳細的安裝指南,該模組可用於x64與x86系統。
如果這個方法行不通,還可以試試PATHINFO連結;將index.php/放在自定義連結結構的開始部分前:
/index.php/%year%/%monthnum%/%day%/%postname%/這個方法並不總能成功,尤其是用在運行於ISS6上的WordPress時。要讓這方法運行在IIS上,需要將以下兩行代碼添加到php.ini檔案並將檔案保存在網路根目錄下。
cgi.fix_pathinfo=1
cgi.force_redirect=0
另一種解決方法是利用IIS的自定義404重定向。這要求你的虛擬主機允許你添加自定義404重定向,不過這並不需要你安裝任何第三方mod_rewrite軟體,也不需要你的固定連結結構以/index.php/開頭。

相關詞條

相關搜尋

熱門詞條

聯絡我們