Dot-Htaccess

如何在 WordPress-htaccess-file 中禁用自動重定向

  • April 5, 2022

WordPress 在其 htaccess 文件中有一個函式,如果文件名與現有源匹配,該函式會執行自動重定向。

例如,如果您輸入http://rechnen-in-der-wolke.net/datensicherheit>,它會將您重定向到<http://rechnen-in-der-wolke.net/datensicherheit-cloud-anbieter-hagel-it/

如何在不降低整體功能的情況下禁用此功能?

這是預設 htaccess 文件的樣子:

# BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;
# 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_slugmeta_key 列(實際的 slug 儲存在 meta_value 列中)。如果您希望在特定情況下不發生這種預設行為,則可以在此處刪除值並蒐索“使用過的”URL。

引用自:https://serverfault.com/questions/776310