求助 怎么做中文搜索

#1 Korytan

http://localhost/index.php?c=search&a=search&kw=中文     
正常显示
伪静态设置   
'search/'                => 'search/search',
http://localhost/search/中文
中文显示不出来  英文正常

求.htaccess伪静态规则啊:dizzy::dizzy:

2016-06-02 02:44:04

#2 jake

正常的做法,一般是 http://localhost/search.html?s=关键字。具体看看百度或者其他的搜索引擎,都是通过GET提交参数,没哪个是用地址构造的。

楼上的非常规做法也行:
规则:

'search/' => 'search/index',

然后在控制器里面,通过$_SERVER["REQUEST_URI"]来取得整个请求地址,注意这里中文已经是URLENCODE过的。

.htaccess规则在手册内有。


PS:标题那样写不好吧,我编辑一下哦!


2016-06-02 08:58:32

#3 Korytan

jake 发表于 2016-6-2 08:58
正常的做法,一般是 http://localhost/search.html?s=关键字。具体看看百度或者其他的搜索引擎,都是通过GE ...
我知道为什么了
'search/'                => 'search/search',   //这里被转义了  中文转义后以%开头 不被地址接受

问题是怎么把urldecode回来?

2016-06-02 13:51:07

#4 jake

Korytan 发表于 2016-6-2 13:51
我知道为什么了
'search/'                => 'search/search',   //这里被转义了  中文转义后以%开头 不 ...
你的要求是URL地址本身,而不是参数。

但是URL本身的中文,比较难以统一。不同的浏览器有不同的编码,有些浏览器会是原来的中文,有些是encode过的%20什么的。

并且,不同浏览器还有不同的编码,如IE用的GBK码,会使得encode之后又不一样的。

所以,如果必须完成这样的功能,建议是看看能否统一浏览器起来,让浏览器的行为变得一致。

这是为什么大部分搜索参数都是通过参数传递(如百度)而不是通过URL地址本身传递的原因。并且百度是GBK的~~~

当然,我上面回帖的方法就不用那么麻烦,也实现了功能。

2016-06-02 14:51:04

#5 Korytan

那分页怎么做?
http://localhost/search/中文/1
我的旧版地址是这样的  新版就差这个地址弄不好:dizzy:

2016-06-04 01:22:54

#6 Korytan

jake 发表于 2016-6-2 14:51
你的要求是URL地址本身,而不是参数。

但是URL本身的中文,比较难以统一。不同的浏览器有不同的编码,有 ...
那分页怎么做?
http://localhost/search/中文/1
我的旧版地址是这样的  新版就差这个地址弄不好:dizzy:

2016-06-04 01:23:09

#7 Korytan

  *                        'args' => array( // 网址映射附加的隐藏参数,如果针对某个网址映射设置了隐藏参数,则在网址中仅会存在参数值,而参数名称被隐藏。
*                                                          // 比如 'search' => array('q','page'), 那么生成的网址将会是:
*                                                         // http://www.example.com/search-thekey-2.html
*                                                         // 配合map映射'search' => 'main@search',这个网址将会执行 控制器main/动作serach,
*                                                         // 而参数q将等于thekey,参数page将等于2
*                        ),



个人觉得还是旧版这个好   
比如新版 内容页 'show/'                => 'main/show',

如果id =  空值    就是在地址上删除id值   页面就显示不正常了  返回的是那种主页面连接不到CSS那种页面  好难看
还有加上 分页   也是必须显示的不能空值  有时候不满足分页条件 还真不想让它显示出来  相对于SEO优化也会好那么点点吧
个人建议吧    什么的做成如旧版隐藏参数 会好那么点吧

2016-06-04 03:46:30