2010-05-26 2 views
1
Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]+ /(#[^?& ]*)??([^& ]*&)?s=([^& ]+)[^ ]* HTTP/ 
RewriteRule ^$ http://wordpressblog.com/search/%3? [R=301,L] 

В настоящее время я использую выше .htaccess правила mod_rewrite для преобразования по умолчанию WordPress поиска ссылка:Использование - вместо + в WordPress Search Permalink

http://wordpressblog.com/?s=key+word 

в хорошем Permalink так:

http://wordpressblog.com/search/key+word 

Мой вопрос: Какая часть правила mod_rewrite выше, что мне нужно изменить, чтобы получить дополнительную ссылку:

http://wordpressblog.com/search/key-word.html 

Спасибо.

ответ

0

Если я правильно думаю, когда вы перенаправляете это;

?s=hello+world 

к этому;

/search/hello-world.html 

WordPress будет на самом деле искать «привет-world.html», который я сомневаюсь, вы получите никаких результатов для (предполагая «привет + мир», где плюс URL декодируется до фактического «пространства» , возвращает результаты).

Так что вам также нужно будет подключиться к WordPress до того, как он сделает поиск, чтобы обезопасить поисковый запрос до того, что было.

Плюс, кажется, a pain to do character replacement in Apache rewrites - вам нужно написать правило для каждого числа «плюсовых» вхождений.

Если бы я был вами, я бы сделал все внутри самого WordPress, используя PHP. Я могу опубликовать решение, если вам нравится звук этого?

+0

уверен, любой вид решения можно только приветствовать. Благодарю. – poer

1

Это сработало для меня. Поиск не работал, когда я включил permalinks.

Добавьте этот JQUERY SCRIPT в свой файл header.php THEME ПОСЛЕ wp_head(); тег.

Чтобы это сработало, вы также должны включить jquery, добавив <?php wp_enqueue_script('jquery'); ?> в header.php ПЕРЕД wp_head(); тег.

Пример:

<?php wp_enqueue_script('jquery'); ?> 
<?php 
    /* We add some JavaScript to pages with the comment form 
    * to support sites with threaded comments (when in use). 
    */ 
    if (is_singular() && get_option('thread_comments')) 
     wp_enqueue_script('comment-reply'); 

    /* Always have wp_head() just before the closing </head> 
    * tag of your theme, or you will break many plugins, which 
    * generally use this hook to add elements to <head> such 
    * as styles, scripts, and meta tags. 
    */ 
    wp_head(); 

?> 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#searchform").live('submit',function(){ 

      location.href='/search/' + encodeURIComponent(jQuery("#s").val()).replace(/%20/g, '+'); return false;  

     }); 
    }); 
</script> 
Смежные вопросы