2010-07-19 101 views
2

我有一個網站,網址是這種格式的改寫:通過GET提交表單重寫URL

http://www.example.co.uk/module/page/query/ 
http://www.example.co.uk/index.php?m=module&p=page&q=query 

這引起了諸如網頁:

http://www.example.co.uk/schools/view/495/ 
http://www.example.co.uk/schools/search/park+lane/ 

有任何使它成爲表單(通過GET提交)可以提交到重寫的URL的方式,或者這是我需要用Javascript實現的方法嗎?

+0

是否聽說過mod_rewrite在apache中重定向 – 2010-07-19 11:19:06

回答

2

我不會推薦用JavaScript來做這件事,如果它對你的系統來說是基本的,實際上我不會推薦用JavaScript做這件事,因爲實際上沒有必要。你可以創建一個你的表單提交的腳本,然後標題重定向到從那裏的mod重寫的URL。例如:

// searchtransform.php?search=foo 
$searchterm = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_STRING); 
header("Location: /search/".$searchterm); 
1

從@seengee答案將工作太,但這是我會怎麼做它在javascript: 你可以通過JavaScript提交表單,並設置動作的URL有:

<input type="button" onclick="formSubmit();"/> 

function formSubmit() 
{ 
    document.form1.action = "anotherpage.html"; 
    document.form1.submit(); 
} 
+0

儘管用戶可能已禁用了JS。特別是像NoScript這樣的Firefox插件 - 我不會認爲這是非常罕見的。 Serverside肯定更適合這個。 – Dan 2010-07-19 11:47:25

+0

這是一個有趣的問題。我無法想象大多數用戶關閉JS了。這個論點(連同餅乾)在90年代盛行,但我最近沒有聽說過。 – webdad3 2010-07-19 12:00:10

+0

必須說我不同意這一點。我可以給出一個關於JavaScript關閉的「用戶」的明確示例,那就是那些喜歡爲搜索結果抓取GET表單的googlebot.http://googlewebmastercentral.blogspot.com/2008/04/crawling-through- html-forms.html更不用說使用屏幕閱讀器的用戶,使用NoScript擴展的用戶。我需要繼續嗎? – robjmills 2010-07-19 12:03:29