Dot-Htaccess
如何在 WordPress-htaccess-file 中禁用自動重定向
WordPress 在其 htaccess 文件中有一個函式,如果文件名與現有源匹配,該函式會執行自動重定向。
如何在不降低整體功能的情況下禁用此功能?
這是預設 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
我已經嘗試刪除
RewriteCond %{REQUEST_FILENAME} !-f
(沒有任何變化)或RewriteCond %{REQUEST_FILENAME} !-d
(沒有任何變化)或兩者(重定向循環)。
我在這裡找到了我的問題的解決方案:https ://wordpress.stackexchange.com/questions/3326/301-redirect-instead-of-404-when-url-is-a-prefix-of-a-post-or -頁面名稱
必須在functions.php中插入以下程式碼:
add_filter('redirect_canonical', 'no_redirect_on_404'); function no_redirect_on_404($redirect_url) { if (is_404()) { return false; } return $redirect_url; }
感謝所有幫助我的人!
Wordpress 不會隨意重定向您的 URL,但它會將每個舊 URL 連同其創建的文章一起儲存,即使不再使用。
如果您更改 post slug,Wordpress 會將舊 URL 重定向 (301) 到新 URL。這與 .htaccess 無關,它是一個 wordpress 功能。不幸的是,我從未在法典中看到此功能正確記錄。因此,我無法告訴您執行此操作的 wp_core 函式以及它位於核心的哪個位置(並且您不想觸摸核心,對嗎?)。
先前使用的 slug(s) 儲存在
wp_postmeta
表中的數據庫中。檢查_wp_old_slug
meta_key 列(實際的 slug 儲存在 meta_value 列中)。如果您希望在特定情況下不發生這種預設行為,則可以在此處刪除值並蒐索“使用過的”URL。