如何理解為什麼您的永久鏈接在 WordPress 中不起作用

已發表: 2021-12-27

許多網站任務都集中在搜索引擎優化 (SEO) 上,因為它可以提高您的知名度和搜索排名。 您的 SEO 策略的一部分應該基於您的 URL 結構,儘管如果您的永久鏈接在 WordPress 中不起作用,您將難以降低流量數據。

很容易知道您的永久鏈接何時損壞,但不太容易理解的是如何修復它。 大多數時候,您必須跳入服務器配置文件並進行一些更改。 不過,從 WordPress 中快速重置可能就是您所需要的。

在接下來的幾節中,我們將向您展示當您的永久鏈接在 WordPress 中不起作用時該怎麼做。 首先,我們將更多地討論損壞的永久鏈接及其外觀。

WordPress中損壞的永久鏈接是什麼樣的

無論您使用哪種服務器或其設置如何,損壞的永久鏈接看起來都一樣。 在大多數情況下,您會看到您的主頁是完美的,而其他頁面顯示 404 錯誤:

WPKube 404 頁面。

對於某些特定情況——例如,網站中不存在的合法 URL——您可以將 404 錯誤重定向到您的主頁。 但是,在許多情況下,這並不是一個永久的解決方案,因為您經常會遇到未被發現的潛在問題。

更重要的是,如果您的永久鏈接在 WordPress 中不起作用,除非您瀏覽您的網站,否則您將一無所知。 當用戶向您發送通知時,您可能第一次發現問題。 這不利於用戶體驗 (UX),也不利於您的聲譽。

為什麼您的永久鏈接在 WordPress 中不起作用

WordPress 中的插件和永久鏈接更像是您網站的“一勞永逸”方面。 雖然您可以逐個發布編輯 slug,但您可以在初始 WordPress 安裝過程之後設置全局永久鏈接結構。 推薦的典型做法是在此之後保留它們,因為它會影響您的 SEO。

因此,WordPress 中損壞的永久鏈接更難修復,因為您不會直接參與破壞它們。 相反,還有其他一些途徑可以探索:

  • 如果您安裝新插件或更改舊插件的設置,您可以間接更改永久鏈接。 對於那些掛鉤到您的服務器配置文件的插件來說尤其如此。
  • 雖然機會很小,但一些核心、主題和插件更新會破壞您的永久鏈接。 這就是為什麼您需要一個乾淨且最新的備份的原因之一(稍後會詳細介紹)。
  • 說到這一點,如果您必須使用備份來恢復您的網站,這也可能會破壞您的永久鏈接結構。 這也適用於遷移您的網站。

不過,您的永久鏈接在 WordPress 中無法正常工作的原因之一是更常見的:手動編輯您的服務器配置文件。 如果您決定修改這些文件,這會造成與衝突插件相同的損害。

無論錯誤的原因是什麼,您都需要著手修復它。 現在您知道了原因,您可以開始挖掘並發現問題所在。

修復損壞的 WordPress 永久鏈接需要什麼

如果您還沒有 twigged,您將需要跳轉到服務器的核心文件。 正因為如此,得到你需要的一切,準備好搖滾樂是件好事。 這是您需要準備的元素清單:

  • 對您的服務器進行管理訪問,以便使用其文件。 在大多數情況下,這不需要您的輸入 - 特別是如果您是網站所有者。
  • 您的服務器憑據,特別是登錄詳細信息。 您可以在主機控制面板或提供商的電子郵件中找到這些信息。 如果您找不到憑據,您的主機將能夠告訴您它們在哪裡。
  • 安全文件傳輸協議 (SFTP) 客戶端,例如 Cyber​​duck、FileZilla 或 Transmit。 它們中的每一個都能夠在您的服務器上進行簡單的文件瀏覽。
  • 使用 SFTP 不會引起問題的技能。 幾乎不用說,您會想知道如何在整個本教程中使用 SFTP。
  • 對您的網站和可能的服務器進行乾淨、最新和完整的備份。 如果您因為持續(或引入)錯誤而需要恢復,您的備份將成為您擁有的最有價值的文件。

雖然有可選工具,例如文本編輯器,但它們不是必需的。 上面的列表將是您修復在 WordPress 中不起作用的永久鏈接所需的全部內容。

如何修復在 WordPress 中不起作用的永久鏈接

準備好所需的所有工具、技能和服務後,您就可以開始工作了。 在接下來的幾分鐘內,我們將向您展示如何通過以下方式修復在 WordPress 中不起作用的永久鏈接:

  1. 我們將從 WordPress 儀表板重置永久鏈接,這需要幾秒鐘的時間。
  2. 您將檢查可能影響您的永久鏈接的插件的不兼容性。
  3. 對於 Apache 服務器,我們將向您展示如何解決您的永久鏈接問題。
  4. 我們還將向您展示 Nginx 服務器的相同內容,因為它們同樣(如果不是更)流行。

在本文結束時,您將擁有正確的知識,以確保您可以解決任何與永久鏈接相關的問題。 有很多事情要做,所以我們將從 WordPress 本身開始。

1. 在 WordPress 中重置您的永久鏈接

希望在 WordPress 儀表板中快速重置您的永久鏈接將解決您遇到的任何問題。 這應該需要幾秒鐘,因為這是解決永久鏈接問題的直接方法,我們建議先這樣做。

首先,前往 WordPress 中的“設置”>“永久鏈接”頁面:

WordPress 永久鏈接頁面。

對於大多數現代 WordPress 安裝,您將擁有帖子名稱永久鏈接結構。 不過,現在我們需要臨時更改它。 為此,請檢查任何其他單選按鈕。 如果您想非常謹慎地保持 URL 結構不變,您可能需要選擇Custom Structure ,並使用/%postname%/標籤:

添加自定義永久鏈接結構。

接下來,保存您的更改,重新選擇原始結構(在本例中為Post name ),然後再次保存您的更改。 這應該會觸發您的永久鏈接的重置,因此請檢查您的網站以及您是否已解決問題。

2. 檢查插件衝突和不兼容性

修復在 WordPress 中不起作用的永久鏈接的下一個方法是更直接地採取流行的步驟來修復許多 WordPress 問題。 您的插件(當然)會影響您網站的無數區域,以至於流氓插件可能會導致您的永久鏈接出現問題。

此階段的標準方法是通過 SFTP 登錄您的服務器,但在這種情況下我們不需要。 相反,前往 WordPress 中的插件 > 已安裝插件頁面:

WordPress 中的插件頁面。

在此屏幕上,選擇每個插件的每個複選框——您可以使用頂部的全局複選框以節省時間——然後從下拉批量操作菜單中選擇停用

批量操作下拉菜單中的停用選項。

這將關閉每個插件,但也有望解決影響您網站的永久鏈接問題。

接下來,依次啟用每個插件,直到您發現永久鏈接不再起作用。 找到插件後,再次將其停用,然後將您的網站恢復到原來的樣子,避免有問題的插件。

此時,您有幾個選擇:

  • 如果您不再需要它,請完全刪除該插件。
  • 尋找替代方案,從 WordPress 插件目錄開始。
  • 聯繫開發人員讓他們知道並要求修復。

在任何情況下,您都希望保持禁用插件,直到您有解決方案,因為您不希望您的永久鏈接保持損壞。

3. 配置你的 Apache 服務器

雖然它們現在不像以前那樣流行,但 Apache 服務器仍然是託管您網站的可靠方式。 更重要的是,它們對於普通用戶來說很容易管理(有缺點,但這是另一篇文章)。

因此,讓我們看一下您可以執行的一些任務,以使您的 WordPress 永久鏈接再次工作。

使用您的.htaccess文件讓您的永久鏈接再次工作

就像在 WordPress 中切換不同的永久鏈接結構一樣,您也可以重置您的.htaccess文件。 對於不知情的人,這是一個配置文件,可幫助您的服務器管理其內容。 您可以使用新指令對其進行編輯,但在這種情況下,我們希望禁用它(或者至少,不要讓服務器臨時使用它)。

您可以使用新指令編輯.htaccess文件,但在這種情況下,我們希望禁用它(或者至少,不要讓服務器臨時使用它)。

為此,您需要使用之前獲得的憑據和您選擇的 SFTP 客戶端登錄到您的服務器。 進入後,您將需要導航到正確的站點。 如果它是您服務器上唯一的一個,那麼這應該不會太難。 但是,對於多個站點,請查找具有特定名稱的內容。

如果您看不到站點的名稱,則可能是它是您服務器的主要安裝。 在這種情況下,請查找wwwrootpublic_html或類似的東西。 您網站的文件將在其中。

一旦你在正確的地方,尋找你的.htaccess文件。 它應該在最頂層的目錄中:

Cyber​​duck 中的 .htaccess 文件。

雖然歡迎您備份此文件,但它將保留在您的服務器上,但名稱不同。 為此,請右鍵單擊該文件,然後從上下文菜單中找到重命名(或類似)選項:

在 Cyber​​duck 中重命名文件。

這將導致 WordPress 跳過.htaccess文件,就好像它不存在一樣。 從這裡開始,您需要按照我們指南中的第一步重置您的永久鏈接。 這將在您的服務器上創建一個全新的.htaccess文件,此時您可以測試您的永久鏈接是否不起作用。

如果它們確實有效,那麼您的.htaccess文件中的某些內容將導致您的永久鏈接錯誤。 您可能需要執行一些剪切和粘貼工作來找出導致問題的行,但是因為您有一個全新的.htaccess文件可以使用,所以可能沒有必要。

AllowOverride規則添加到您的 Apache 配置中 文件

對於下一個技巧,您需要位於服務器的根文件夾中。 這是您可以訪問的最高級別,請注意某些主機可能不允許您這樣做。 因此,如果您使用共享服務器,這將不是您的選擇。 但是,管理服務器或使用虛擬專用網絡 (VPN) 的人員可以執行以下操作。

你會知道你是否在正確的地方,因為會有一個etc文件夾。 雖然有些服務器會有etc/httpd/httpd.conf路徑和文件,但 Linux 服務器可能會使用etc/apache2/apache2.conf

顯示 Apache 配置文件路徑的服務器。

您需要在apache2.conf文件中添加一個規則,使您能夠在每個目錄的基礎上覆蓋服務器的某些方面。 我們不打算在這裡討論這個細節,因為你不需要了解其中的複雜性。 但是,在嘗試此操作之前,您需要確保備份。

回到您的 SFTP 客戶端,導航到apache2.conf文件,然後在您的文本編輯器中打開它。 在其中,查找以下代碼套件:

 <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

您需要將AllowOverride None行更改為AllowOverride All 。 保存更改後,您需要檢查您的永久鏈接是否有效。 如果沒有,您可能需要重新啟動服務器。 這是一種使用安全外殼 (SSH) 訪問的高級技術。 我們在博客的另一篇文章中對此進行了介紹。

當您在服務器中時,輸入sudo systemctl restart apache2以重新啟動它。 由於不同主機的複雜性,如果您遇到任何問題,您會想與他們交談。 許多主機都有自定義方式來訪問您的服務器,您會希望找到最優化的方式。

4. 配置你的 Nginx 服務器

與 Apache 的錫頂 Hot Rod 相比,Nginx 是一款超級光滑的賽車。 因此,它擁有大量粉絲,與競爭對手相比擁有很大的市場份額。

這裡的缺點是查找您需要的文件比其他服務器類型更棘手。 儘管如此,它仍然是可能的,所以我們將向您展示如何修復您的永久鏈接在 Nginx 服務器中不起作用。

找到你的 Nginx 配置文件

首先,您需要找到正確的配置文件。 您可能需要在此處諮詢您的主機以了解服務器上的確切位置。 對我們來說,該文件位於etc/nginx/site-enabled/目錄中,但您的可能會有所不同。

進入後,查找名為default.conf的文件,或以您的站點命名的文件——再次,如果需要,請諮詢您的主機。 Nginx 配置文件使用代碼塊來定義不同的規則,你會知道文件是否正確,因為會有一個以server {開頭的塊。

當你找到這個塊時,你可以根據你的站點是在根目錄還是子目錄來修改它。

修改你的 Nginx 配置文件

打開default.conf文件,將光標懸停在server塊周圍,尋找另一個縮進塊,這次是location / 。 在其中,添加以下內容:

try_files $uri $uri/ /index.php?$args;

完整塊應類似於以下內容:

 location / try_files $uri $uri/ /index.php?$args;

這僅適用於您的站點位於服務器的根目錄中。 如果您的站點位於子目錄中——也許它是許多站點之一——您需要將該位置指向該子目錄:

 location /subdirectort/ try_files $uri $uri/ /subdirectory/index.php?$args;

保存更改後,使用sudo systemctl reload nginx重新啟動服務器。 與 Apache 說明一樣,您可能無法執行此操作,在這種情況下,請與您的主機交談並請他們幫助您。

包起來

您的永久鏈接代表訪問您網站上的帖子和頁面的人類可讀方式。 如果他們出錯了,後果可能會使您的網站癱瘓。 通常,您首先會知道您的永久鏈接在 WordPress 中不起作用的是您的用戶會遇到大量 404 錯誤。

要修復它,最好的情況是在 WordPress 中重置您的永久鏈接。 但是,在許多其他情況下,您必須打開服務器並刪除(或以其他方式修改)文件才能使事情再次正常運行。 這篇文章應該提供你需要的技能和工作流程,以使船舶正確並繼續航行。

您的永久鏈接在 WordPress 中不起作用是您之前遇到過的問題,還是您現在遇到的問題? 在下面的評論部分分享您的情況和任何補救建議!