我爱水煮鱼 » WordPress » WordPress 静态化搜索链接

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

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

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

标签:

分享到:

15 条评论 添加你的评论 →

  • ddkk3000 2007-09-03 11:50:58 #

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

    支持 反对

  • paopao 2007-09-03 15:03:48 #

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

    支持 反对

  • Denis 2007-09-03 15:09:59 #

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

    支持 反对

  • paopao 2007-09-03 15:14:54 #

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

    支持 反对

  • Denis 2007-09-03 15:36:06 #

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

    支持 反对

  • oline01 2007-09-03 16:26:47 #

    好文!非常感谢

    支持 反对

  • oline01 2007-09-03 16:31:11 #

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

    支持 反对

  • Denis 2007-09-03 16:40:03 #

    @ oline01,没有!

    支持 反对

  • ehaagwlke 2007-09-03 18:26:07 #

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

    支持 反对

  • paopao 2007-09-03 18:44:06 #

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

    支持 反对

  • Denis 2007-09-03 19:41:48 #

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

    支持 反对

  • paopao 2007-09-03 22:44:19 #

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

    支持 反对

  • 沈蚊 2007-09-04 18:53:57 #

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

    支持 反对

  • 有鱼外贸 2007-11-28 23:50:35 #

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

    支持 反对

  • 有鱼外贸 2007-11-29 13:09:21 #

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

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

    支持 反对

发表评论

你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

使用新浪微博登陆 使用腾讯微博登陆 使用豆瓣登陆

你也可选择直接在本站 注册