Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress将带有查询字符串的主页重定向到不带查询字符串的主页_Php_Wordpress_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Php WordPress将带有查询字符串的主页重定向到不带查询字符串的主页

Php WordPress将带有查询字符串的主页重定向到不带查询字符串的主页,php,wordpress,.htaccess,mod-rewrite,redirect,Php,Wordpress,.htaccess,Mod Rewrite,Redirect,我们正在使用WordPress,我想做的是将任何请求重定向到我们的具有查询字符串的主博客页面,重定向到没有查询字符串的主博客页面。唯一的例外是搜索查询 因此: /blog/?gibberish应该重定向到/blog/ /blog/?gibberish=gibberish应重定向到/blog/ /blog/?s=cats应按正常方式处理,而不是重定向 为了简单起见,这里是默认的WordPress重定向规则 # BEGIN WordPress RewriteRule ^index\.php$ - [

我们正在使用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();
    }
}

1) 到目前为止你试过什么?2) 何必麻烦呢。我在上面的问题中添加了1和2。问题是,这仍然会通过WordPress建立各种数据库连接。重定向和后续缓存的想法是,它避免了稍后调用WordPress altogetherTad,但这里有一个解决方案,希望这能有所帮助