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検索パーマリンクを変換しています。

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

このような素敵なパーマリンクに:

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

私の質問は次のとおりです。このようなより良いパーマリンクを取得するには、上記のmod_rewriteルールのどの部分を変更する必要がありますか。

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

ありがとう。

4

2 に答える 2

1

これは私にとってはうまくいきました。パーマリンクを有効にすると、検索が機能しませんでした。

wp_head(); の後に、この JQUERY SCRIPT を THEME header.php ファイルに追加します。鬼ごっこ。

<?php wp_enqueue_script('jquery'); ?>これが機能するには、header.php BEFORE wp_head();を追加して、jquery を有効にする必要もあります。鬼ごっこ。

例:

<?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> 
于 2011-02-26T00:44:00.287 に答える
0

私が正しく考えているなら、これをリダイレクトするとき。

?s=hello+world

これに;

/search/hello-world.html

WordPressは実際に「hello-world.html」を検索しますが、結果が得られるとは思えません(「hello + world」、プラスは実際の「スペース」にデコードされたURLであると仮定すると、結果が返されます)。

したがって、検索語を元の状態に戻すために、検索を行う前にWordPressにプラグインする必要もあります。

さらに、Apacheの書き換えで文字置換を行うのは面倒なようです。つまり、「プラス」の出現回数ごとにルールを作成する必要があります。

もし私があなたなら、PHPを使ってWordPress自体の中ですべてをやります。あなたがその音が好きなら、私は解決策を投稿することができますか?

于 2010-05-27T16:48:44.753 に答える