簡體   English   中英

WordPress將帶有查詢字符串的主頁重定向到沒有查詢字符串的主頁

[英]WordPress redirect homepage with query string to homepage without query string

我們正在使用WordPress,而我想做的就是將所有具有查詢字符串的請求重定向到我們的主博客頁面,而將查詢重定向到沒有查詢字符串的主博客頁面。 唯一的例外是搜索查詢。

因此:

/blog/?gibberish應重定向到/blog/

/blog/?gibberish=gibberish應重定向到/blog/

/blog/?s=cats應該正常處理,不要重定向

為簡單起見,這是默認的WordPress重定向規則

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress

到目前為止,這是我嘗試過的

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
RewriteCond %{QUERY_STRING} .
RewriteRule ^$ http://domain.com/ [R=301,L]
# END WordPress

但是,這在瀏覽器中出現錯誤,提示頁面未正確重定向。

我們之所以想這樣做,是因為我們使用的是緩存插件,但是它不緩存帶有查詢字符串的請求。 目前,我們有很多使用廢話查詢字符串的惡意請求,這些請求繞過了緩存並導致服務器負載。

您也可以在functions.php中執行此操作,在init上執行一個函數以檢查錯誤查詢並根據需要重定向。

add_action('init', 'redirectQuery', 0);
function redirectQuery(){
    if( isset($_GET['gibberish']) == true ){
            wp_redirect(home_url(), 301);
            die();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM