2011-03-03 92 views
69

突然之間,我去我的WordPress網站,所有的頁面給了我一個404頁面未找到頁面。我假設問題在於永久鏈接結構,我可以發誓我沒有碰到。永久鏈接設置是「月份和名稱」。WordPress給我404頁面沒有找到所有頁面除了主頁

我在網上研究過類似的這個問題的實例,很多它與.htaccess文件有關?我試圖找到,但我不能。也許它被刪除了嗎?它應該放在哪裏。

任何建議將有幫助

當然,我可以看到隱藏的文件。

+0

建議你問這對http://wordpress.stackexchange.com/爲好。 – 2011-03-03 15:20:30

回答

68

.htaccess是一個隱藏文件,因此您必須將所有文件設置爲在您的ftp中可見。

我建議你將你的永久鏈接結構返回到默認值(?p = ID),以確保.htaccess是問題所在。

之後,你可以簡單地設置「月份和名稱」結構,看看它是否工作。

PS:你升級到3.1了嗎?在這種情況下,我看到一些有插件問題的人。

+1

是的,我已經顯示隱藏的文件。我已經從默認轉換爲perma,並且默認工作。另外,WordPress的更新本身或什麼?我注意到,當我登錄時,我的網站上有一個新的管理任務欄,這是我以前沒有的。我不知道它是如何到達那裏的。 – Adam 2011-03-03 15:32:34

+0

有人誤更新到3.1,所以它與插件衝突 – Adam 2011-03-05 19:23:19

+1

此解決方案不適用於我的情況。在我的本地主機上。 – 2013-12-28 07:00:43

2
  • 檢查上的.htaccess的目錄是正確的
  • 檢查領域「SITEURL」和「家」是正確的
+1

對我來說,家是問題所在。我修復它,一切恢復工作。 ObrithankyouJoséCarlos。 – 2014-09-04 10:37:52

2

如果你有FTP訪問您的帳戶:

首先,登錄您的wp-admin並轉到設置>固定鏈接

您應該在底部看到如下內容:

「如果您的.htaccess文件是可寫的,我們可以自動執行此操作,但並不是這些是您的.htaccess文件應具有的mod_rewrite規則。點擊字段,然後按Ctrl + A選擇所有「

如果這是真的請執行下列操作:

  1. 走進首FTP客戶端,並確保隱藏文件顯示(根據不同在你的FTP客戶端上) - 如果你不這樣做,你將無法找到你的htaccess文件

  2. 轉到您的wp-admin,wp-content,wp-includes目錄所在的文件夾。檢查.htaccess文件如果存在,跳到步驟4

  3. 如果它不存在,你叫的.htaccess

  4. 更改CHMOD爲.htaccess文件到FTP 666程序(您的喜好你想如何做到這一點)

  5. 創建一個新的空白文件

    回到你的固定鏈接頁面並編輯你想要的鏈接結構。問題應該解決!

  6. 確保在完成後將htaccess文件的chmod更改回644。

剛剛有同樣的問題,它似乎立即修復!祝你好運!

+0

「mod_rewrite」這是問題,我忘了啓用它!謝謝:) – Chemaclass 2016-07-20 11:56:00

6

這個錯誤導致由於Apache的httpd.conf文件中重寫國防部的殘疾人,只是取消它,享受搜索引擎友好的永久鏈接

0

我有同樣的問題,所以我再次刪除了Apache,使之與問題解決了。

31

修復這個問題很簡單,如果你使用比其他固定鏈接的如Day and namedefaultMonth and nameNumericPost nameCustom Structure,你只需要

登錄到你的管理區:Settings > Permalinks這應該是: http://yoursite.com/wp-admin/options-permalink.php

選擇Default永久設置,然後保存更改

然後你就可以再次回到它以前的其他固定鏈接選擇保持它作爲default的喲希望

注意,當你從一個域或位置到另一個移動你的網站上的這個問題可能發生。

+1

這有點幫助我,我有一些數據庫錯誤,然後我所有的網頁是404。切換永久鏈接選項到另一個選項(如普通),然後回到默認選項固定我的所有鏈接! – PaulBGD 2017-04-15 03:28:47

+0

很高興聽到:) – 2017-04-16 11:41:58

+1

完美答案!!! +1 :) – SagarPPanchal 2017-06-27 19:16:30

10

在WordPress管理界面執行以下操作:

  1. 進入管理設置

  2. 點擊固定鏈接並選擇單選按鈕後名稱。

  3. 向下滾動,你會在這裏看到.htaccess代碼。

    <IfModule mod_rewrite.c> 
        RewriteRule ^index\.php$ - [L] 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule . /wordpress/index.php [L] 
    </IfModule> 
    
  4. 複製代碼並粘貼到.htaccess文件中。
+1

我在哪裏可以找到這個?永久鏈接中沒有這樣的東西。 – 2014-04-17 06:13:25

+0

@Boris_yo據我所知,只有當你的'htaccess'文件不是'可寫入的時候,規則纔會顯示出來。如果它是wordpress的話,它就會自己寫出來... – 2015-09-16 03:43:37

+1

這個答案太棒了!除非在Linux中使用WP,否則不會知道它。非常感謝 – 2016-05-12 16:45:23

17

基本上.htaccess文件應該存在,並且httpd.conf應該是正確的。

在我的情況,我在部分更改的文件/etc/httpd/conf/httpd.conf中:

<Directory "/var/www/html"> 

行已變更爲:

AllowOverride None 

AllowOverride All 

然後重新啓動Web服務器。

+0

,這對我有所幫助。在我的情況下,AllowOverride設置丟失。 – rag 2017-05-29 06:40:01

7

如果默認的行爲(example.com/?p=42)正在工作,你應該:

  • 更改爲您喜歡的永久鏈接風格:Admin: Settings > Paramalinks,然後點擊保存。有時它修復了這個問題。如果沒有:
  • 驗證文件/path/to/wordpress/.htaccess已更改,現在包含行RewriteEngine On。如果不是,那是Wordpress權限問題。
  • 驗證「重寫」模塊加載:創建一個PHP文件,

    <?php 
        phpinfo() 
    ?> 
    

    ,在瀏覽器中打開它,然後搜索mod_rewrite。它應該在'Loaded Modules'部分。 如果不是,啓用它 - 看看你的Apache默認index.html文件的詳細信息 - 在Ubuntu中,你與幫手a2enmod

  • 確認Apache服務器正在查看.htaccess文件。打開httpd.conf - 或者它是Ubuntu的替代品,/etc/apache2/apache2.conf。在這裏面,你應該有類似

    <Directory /path/to/wordpress> 
        Options Indexes FollowSymLinks 
        AllowOverride All 
        Require all granted 
    </Directory> 
    
  • 做了這些改變之後,別忘了重新啓動Apache服務器。 sudo service apache2 restart

0

您可能會在網絡主機設置中禁止.htaccess。 設置爲默認永久鏈接將在這種情況下工作。

0

我不久前曾遇到過這個問題。我已經重置我的固定鏈接到默認或只是保存它,更新主題/核心到(4.7.4)/插件,停用所有插件,切換到默認主題,優化數據庫,.htaccess已經是默認的,檢查文件權限,mod_rewrite是開啓。

到目前爲止沒有什麼作品,除了舊版頁面之外,其他作品是帖子,新頁面,/聯繫頁面。

基本上,網頁/網址沒有工作是:

/breeding 
/training 
/training/* 
/breeding/* 

最終,我發現在根文件夾這些文件:

/breeding.php和/training.php

我重命名了這兩個文件,上面的頁面都起作用了。

0

,只需轉到設置 - >永久在你的儀表板,然後在最後保存更改按鈕\

2

這其中大部分問題由簡單地參觀設置固定的時間 - >永久鏈接在WordPress管理頁面點擊保存(如同其他幾個已經指出的答案)。訪問此頁面時,WordPress會重寫.htaccess文件中的指令,這個文件可以神奇地解決問題。移動站點後,該問題經常發生(站點中斷,因爲.htaccess被遺忘或需要更新設置)。

如果WordPress沒有正確的權限來編寫.htaccess文件,則保存設置時會在頁面頂部顯示通知,並在底部顯示更多說明。在這種情況下,您需要自己編輯.htaccess文件,或者更好地修復該文件的權限。該文件位於WordPress安裝的根目錄下。 cd進入目錄並且sudo chmod 644 .htaccess。您可能還想檢查文件是否屬於正確的組,並且需要更改chown。如果您不知道如何做,請詢問您的託管服務提供商。

如果你在共享主機,這可能是你所能做的。如果你仍然有這個問題,你可能想與你託管服務提供商的支持。否則,請確保在服務器上啓用了.htaccess文件,因爲已經建議了@georgeos。請注意,並不總是使用httpd.confUbuntu indicates it is deprecated,但the official Apache docs still says it is often the main configuration file)。 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf似乎是這個文件最常見的地方。找到公用文件夾的塊,通常爲<Directory /var/www/>,並確保AllowOverride指令設置爲All。如果它設置爲None,那麼服務器將忽略您的.htaccess文件。

0

案例1: - 讓我們想想如果將網站從一個託管遷移到另一個託管,如果看到此類問題。

解決方案: - 只需轉到舊的服務器複製.htaccess文件代碼,然後通過新的服務器.htaccess文件。 99%,我會工作。

6

可以很容易地解決這個問題只需按照以下 一些步驟,如果訪問登錄您的管理儀表板,然後簡單地

Go to Settings » Permalinks, and simply click on Save Changes button

enter image description here

這將更新您的永久鏈接設置和刷新重寫規則。在大多數情況下,這個解決方案修復了WordPress的帖子404錯誤。但是,如果它不適合你,那麼你可能需要手動更新你的.htaccess文件。

登錄到服務器使用FTP,並修改的.htaccess文件它位於在文件夾一樣/可溼性粉劑內容/和/ WP-包括/所在, 只是簡單地把代碼婁同一位置在的.htaccess

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

希望這將解決這個問題。

+1

我在問這是怎麼發生的,但是這解決了我的問題......謝謝 – Kurohige 2017-12-05 13:51:51

+0

這通常發生在你的.htaccess文件被刪除或者重寫規則出錯的時候@Kurohige – 2017-12-06 05:57:08

0

如果所有這些都不起作用,你的.htaccess是正確的,並且永久鏈接技巧沒有用,你可能沒有啓用你的apache2 rewite mod

我跑了這一點,我的問題解決了:

sudo a2enmod rewrite