首页 » WordPress » WordPress 静态化搜索链接

WordPress 静态化搜索链接

September 3rd, 2007 at 08:00am 雪山飞猪 浏览: 3,036

把 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://fairyfish.net/search/your+search+terms

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

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

作者:雪山飞猪
原文链接:WordPress 静态化搜索链接
我爱水煮鱼版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

17fav 收藏本文

PR: 3 / del.ici.ous: 3 / Technorati: 4

16 条评论 添加你的评论

  • 1. ddkk3000  |  September 3rd, 2007 at 11:50 am

    恩,有位台兄刚好在问这个问题,鱼就发上来了,不知道是不是预见。。。呵呵

    [回复该留言]

  • 2. paopao  |  September 3rd, 2007 at 3:03 pm

    有个在客户端的解决办法
    打开FF的about:config页,把network.standard-url.encode-utf8的值设为true就可以了

    [回复该留言]

  • 3. 雪山飞猪  |  September 3rd, 2007 at 3:09 pm

    @ paopao,那这个就不是程序的问题了,无能为力了!

    [回复该留言]

  • 4. paopao  |  September 3rd, 2007 at 3:14 pm

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

    [回复该留言]

  • 5. 雪山飞猪  |  September 3rd, 2007 at 3:36 pm

    @ paopao,因为这个是在 .htacess 实现的,所以好像不能转换,不过我再想想,谢谢你提供的信息。

    [回复该留言]

  • 6. oline01  |  September 3rd, 2007 at 4:26 pm

    好文!非常感谢

    [回复该留言]

  • 7. oline01  |  September 3rd, 2007 at 4:31 pm

    问个问题,在 .htaccess 中加入的那个语句顺序有没有关系?

    [回复该留言]

  • 8. 雪山飞猪  |  September 3rd, 2007 at 4:40 pm

    @ oline01,没有!

    [回复该留言]

  • 9. ehaagwlke  |  September 3rd, 2007 at 6:26 pm

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

    [回复该留言]

  • 10. paopao  |  September 3rd, 2007 at 6:44 pm

    @雪山飞猪 我说的转码是修改WordPress的搜索程序,.htaccess确实不好改的,只是在它转发过来以后再处理

    [回复该留言]

  • 11. 雪山飞猪  |  September 3rd, 2007 at 7:41 pm

    我说存在的问题是在 FF 地址栏直接输入 http://fairyfish.net/search/中文词 不行,这样好像和程序没有关系吧?

    [回复该留言]

  • 12. paopao  |  September 3rd, 2007 at 10:44 pm

    有吧,FF地址栏直接输入中文会自动以GBK编码,而搜索程序是以utf-8编码的,所以说到底还是个编码方式问题

    [回复该留言]

  • 13. 沈蚊  |  September 4th, 2007 at 6:53 pm

    如果是这样的话,是不是在搜索框处就可以处理一下啊?

    [回复该留言]

  • 14. 有鱼外贸  |  November 28th, 2007 at 11:50 pm

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

    [回复该留言]

  • 15. 有鱼外贸  |  November 29th, 2007 at 1:09 pm

    就这段代码,那生成的翻页是search_pro_5096.html?p=12 而不是search_pro_5096_12.html,代码如下

    请问我怎样调整才能实现这样的效果search_pro_5096_12.html

    [回复该留言]

Trackbacks / Pingbacks

发表评论

必须

必填,打死不公开

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

恶搞一下百度 WordPress 2.3 Beta 1 测试运行中


WooThemes - Premium WordPress Themes Club

订阅

本站推荐

正在更新

分类

Clicki

抓虾