WordPress 静态化搜索链接

把 WordPress 的搜索链接静态化也不是什么难事,只需要修改几个地方。不过在这里之前你要确保你的 Apache 支持 Mod_rewtite,并且你在你的 WordPress 已经启用 Permalink 的功能。

.htaccess 文件

在你的 .htaccess 文件中增加以下 mod_rewrite 规则:

RewriteRule ^search/(.+)?$ /index.php?s=$1 [QSA,L]

主题文件

添加一个 onsubmit 句柄到主题文件的搜索框的 form 标签:

<form action="<?php bloginfo('wpurl'); ?>/index.php" method="get" onsubmit="location.href='<?php bloginfo('home'); ?>/search/' + encodeURIComponent(this.s.value).replace(/%20/g, '+'); return false;">

就这么简单,以后你可以通过以下链接来搜索本站:

http://blog.wpjam.com/search/your+search+terms

翻译自:Friendly Search URLs,有删节!

更新:好像在 IE 可以直接输入:http://blog.wpjam.com/search/中文搜索词,FF上好像不行!暂时没有解决方法,不知道那位帅哥有办法?

本站长期承接 WordPress 项目,详情请加 QQ:11497107 或者 Email:denis@wpjam.com
如有 WordPress 问题,请到 WPJAM 问答提问!QQ 上不方便解答!

京东商城
  1. 服务器端解决起来应该比较麻烦
    根据这篇文章说的,在firefox中,直接在地址栏访问带中文的url,firefox会以GBK编码方式发送到服务器端,这样就需要在搜索程序前加一个filter,对搜索的字符串进行编码判断并转成utf-8,然后再进行搜索

  2. FF传的值就是经过urlencode的了,你再urlencode了一次吧?
    本地试验了一下,把encodeURIComponent改成了decodeURIComponent就没问题了

  3. ie里面可以啊,确实很牛啊.请问是不是search_pro_5096.html?p=12 这样的没办法Rewrite成search_pro.do?catid=$1&p=$2?就是说Rewrite的前面必须以html为结尾.问题问得不专业,别笑话:)