2010-07-19 90 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