我無法將404(不正確的url請求)重定向到我開發並上載到服務器的404頁面(404.php)。重定向到主目錄中的自定義404頁面
服務器具有在子文件夾/博客WordPress的安裝和所有的404被重定向至WordPress博客的404錯誤頁面。我在.htaccess中設置了重定向,但不起作用。
ErrorDocument 404 /404.php
這是我在.htaccess中添加的內容,但它仍然重定向到博客的404而不是根目錄下的404頁面。
我該如何重寫?
我無法將404(不正確的url請求)重定向到我開發並上載到服務器的404頁面(404.php)。重定向到主目錄中的自定義404頁面
服務器具有在子文件夾/博客WordPress的安裝和所有的404被重定向至WordPress博客的404錯誤頁面。我在.htaccess中設置了重定向,但不起作用。
ErrorDocument 404 /404.php
這是我在.htaccess中添加的內容,但它仍然重定向到博客的404而不是根目錄下的404頁面。
我該如何重寫?
首先確保404.php存在於正確的位置,http://www.example.com/404.php工作正常。
如果兩個404.php和htaccess的是存在於相同的根文件夾,然後嘗試改變下面的行中.htaccess文件
的ErrorDocument 404 /404.php
到
的ErrorDocument 404 /root/404.php
在我的理解ErrorDocument 404 /404.php
只會工作,如果你沒有指定重寫規則.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
因爲wordpress有自己的life cycle,它使用.htaccess
中的URL重寫來確定哪個頁面請求即將到來。 WordPress擁有理解當前請求的核心機制。例如,您創建了一個頁面名稱hello-word
,當您轉到http://your_wordpress.com/hello-word
wordpress從URL中確定hello-world
並在其數據庫中查找是否有hello-word
頁面。如果當前頁面不存在於數據庫中,則機制自動調用位於當前活動主題中的主題404模板。
解決方案
在wp-content/themes/YOUR-THEME/404.php
創建一個文件,並改變它的內容。你不需要在.htaccess
指定ErrorDocument 404 /404.php
。瞭解更多如何創建404
模板here
我通過我的wordpress主題的header.php文件
if (is_404()) {
wp_redirect('../404.php');
exit;
}
的頂部粘貼代碼來實現它,現在根/主站點404頁是越來越加載,而不是wordpress博客的404頁面如預期的那樣。 :)
好的。但我有一個不同的模板和根目錄中的不同網站。我不希望它重定向到wordpress 404。有沒有什麼方法可以覆蓋.htaccess中的wordpress重定向? – AeJey