我目前正在开发CodeIgniter应用程序,但我需要搜索功能对于人类和CodeIgniter都更具可读性。
以下是我目前在提交表单时获取的URL。
http://mydomain.com/search/?query=batman
这就是我最终想要的结果。
http://mydomain.com/search/batman
我对mod重写不太好,但我想这是我需要采取的路线?
感谢您的帮助。
答案 0 :(得分:1)
您应该使用mod_rewrite,在脚本路径中创建脚本.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ /index.php?query=$1 [L]
</IfModule>
查看mod_rewrite docs获取更多信息 http://httpd.apache.org/docs/current/mod/mod_rewrite.html
答案 1 :(得分:0)
您可以使用javascript捕获onsubmit()事件,然后重定向到您想要的网址。
$('#myform').on('submit', function(e){
e.preventDefault();
var value = $('#input').val()
window.location = 'http://mydomain.com/search/' + value;
})
当然,您的控制器必须如下所示:
class Search extends CI_Controller
{
public function index($term)
{
// code code
}
}
答案 2 :(得分:0)
首先将form method
更改为POST
,然后在搜索功能中,您可以执行以下操作:
function search(){
if( $this->input->post(null) ){
$keyword = $this->input->post('keyword');
#do you processing with the post
}else{
$keyword = $this->uri->segment(3);
}
#for pagination
$config['base_url'] = base_url()."controller/search/".$keyword."/page/";
$config['uri_segment'] = 5;
}
答案 3 :(得分:0)
不是一个非常好的方法,但是:
如果将其设为POST
并将变量放入单独的控制器,该怎么办?例如search($s)
public function search($s){
header('Location:http://yoursite.com/whatever/search/'. $s);
}
这可以为您提供所需的结果。