我目前正在研究CodeIgniter應用程序,但我需要搜索功能對於人類和CodeIgniter來說都更具可讀性。將GET值發送到URL,不帶參數和額外字符?
以下是我當前在提交表單時作爲URL獲取的內容。
http://mydomain.com/search/?query=batman
這就是我期待的結果。
http://mydomain.com/search/batman
我不擅長mod重寫,但我想象那是我需要採取的路線?
感謝您的任何幫助。
我目前正在研究CodeIgniter應用程序,但我需要搜索功能對於人類和CodeIgniter來說都更具可讀性。將GET值發送到URL,不帶參數和額外字符?
以下是我當前在提交表單時作爲URL獲取的內容。
http://mydomain.com/search/?query=batman
這就是我期待的結果。
http://mydomain.com/search/batman
我不擅長mod重寫,但我想象那是我需要採取的路線?
感謝您的任何幫助。
不是一個很不錯的方法,但:
如果你把它一個什麼POST
並將變量放入單獨的控制器中。例如search($s)
public function search($s){
header('Location:http://yoursite.com/whatever/search/'. $s);
}
這應該會給你你需要的結果。
這種方法可能不是最乾淨的,但它的工作原理!:) 謝謝。 –
這太噁心了...... – Pattle
@LewisHill:你應該試過一次我所說的,它不是一個乾淨的方法,因爲我看到了(只是一個建議)。礦是同樣的過程,但更適合與'分頁'也是。 –
你應該使用mod_rewrite,在你的腳本路徑創建腳本的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ /index.php?query=$1 [L]
</IfModule>
看看到mod_rewrite的文檔的更多相關信息 http://httpd.apache.org/docs/current/mod/mod_rewrite.html
我喜歡這種方法的外觀,說實話,我已經嘗試過,沒有任何工作。 這是我的.htaccess,因爲它已經讓它刪除了函數名。 'RewriteEngine敘述上 的RewriteCond%{} REQUEST_FILENAME!-f 的RewriteCond%{} REQUEST_FILENAME!-d 重寫規則。*的index.php/$ 0 PT,L]' 我嘗試添加您的解決方案的底部我當前.htaccess,但沒有發生任何事情。 我注意到你在腳本中有/index.php,但是我的URL看起來像'http:// localhost/dev/comiq/search /?search = batman'。 這是一個問題嗎? –
您可以捕獲與的onsubmit()事件javascript,然後重定向到你想要的url ..
$('#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
}
}
首先改變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;
}
這很好,但我認爲他想堅持GET +理由@Christopher以上指出 –
@BeatAlex這不是+1是什麼,但... – user1477388
你需要路由嗎? http://ellislab.com/codeigniter/user-guide/general/routing.html – pregmatch
我不會這樣做,使用'GET'字符串是進行搜索的正確方法。這樣您就可以告訴搜索引擎和您的分析來跟蹤或忽略這些頁面。 – cmorrissey