在Wordpress搜索中用加号( - )替换加号(+)

时间:2014-09-11 07:51:37

标签: wordpress .htaccess permalinks

如何使用htaccess将url plus(+)符号更改为url中的短划线( - )。这是我到目前为止的代码:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(#[^?&\ ]*)?\?([^&\ ]*&)?s=([^&\ ]+)[^\ ]*\ HTTP/
RewriteRule ^$ http://example.com/search/%3\.html? [R=301,L]
</IfModule>

效果很好,结果如下:http://example.com/search/key+word.html

唯一的问题是我想用破折号改变加号。如果有人能提供帮助,我真的很感激。

2 个答案:

答案 0 :(得分:1)

您可以在301规则下面插入此代码:

RewriteRule "^(search)/([^ +]*)[ +]+([^ +]*[ +].*)$" /$1/$2-$3 [L,NE]
RewriteRule "^(search)/([^ +]*)[ +]([^ +]*)$" /$1/$2-$3 [L,R=302,NE]

答案 1 :(得分:0)

我决定使用以下代码的插件来实现:

function seo_search_result() {
    if ( is_search() && strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === false && strpos($_SERVER['REQUEST_URI'], '/search/') === false ) {
        wp_redirect(get_bloginfo('home') . '/search/' . str_replace(' ', '-', str_replace('%20', '-', get_query_var('s'). '.html')));
        exit();
    }
}

add_action('template_redirect', 'seo_search_result');