求助 怎么做中文搜索    
    
        发布于:2022-01-17 09:50:54
    
            
            #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            
            我知道为什么了
'search/
'                => 'search/search',   //这里被转义了  中文转义后以%开头 不被地址接受
问题是怎么把urldecode回来?
                
                        2016-06-02 13:51:07                    
         
                
            #4 jake            
            你的要求是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            
            那分页怎么做?
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