2015-09-16 69 views
0

我們使用的WordPress和我想要做的是重定向功能查詢字符串我們的主博客頁面的任何請求,主博客頁面沒有查詢字符串主頁。唯一的例外是搜索查詢。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 

然而,這出現在瀏覽器中稱該頁面沒有正確重定向錯誤。

我們想這樣做的原因是因爲我們使用一個緩存插件,但它不與查詢字符串緩存請求。目前,我們有大量的惡意請求使用廢話查詢字符串,它繞過緩存並導致服務器負載。

+0

1)什麼都你到目前爲止已經試過? 2)爲什麼打擾。 –

+0

我在上面的問題中添加了1和2 – MrCarrot

回答

0

您也可以在functions.php中執行該操作,執行init的功能來檢查不良查詢並根據需要重定向。

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

問題出在這裏仍然會通過WordPress進行各種數據庫連接。重定向和隨後的高速緩存兩者的想法是,它避免了完全 – MrCarrot

+0

塔德後期調用WordPress的,但這裏是解決希望這可以幫助[htaccess的301重定向 - 刪除查詢字符串(http://stackoverflow.com/a/21118575/3276081) – santi6291