2012-09-05 60 views
1

是否可以使用Apache的mod_rewrite从URL中删除空的查询字符串参数?Apache mod_rewrite删除空查询字符串参数?

一个简单的PHP脚本有一个通过GET提交给自己的HTML表单。 HTML表格有许多输入字段,并通过获取得出的URL可能最终会被难以置信地长,例如...
http://www.domain.org/script.php?var1=&var2=&var3=foo&var4= ... &var18=bar

提交时,这个PHP脚本只处理查询字符串paramters其长度> 0空查询字符串参数被忽略。

是否有人知道一种方法,可以清除查询字符串中的空变量,以便URL变成?
http://www.domain.org/script.php?var3=foo&var18=bar

我知道我可以通过处理GET阵列,构建基于与价值观GET数组元素的新的查询字符串我的PHP脚本中这样做,那么做一个HTTP标头重定向。但这听起来很垃圾。

是否有更好的方法从URL中删除空的查询字符串参数?

回答

0

这是可能的,但很不明智对于任何变量来说,空(null)是完全合法的值,您将如何让处理器知道您想将某些变量设置为empty/null?

+0

处理问题的PHP脚本(我假设你指的是)是一个搜索脚本,它从用户在表单中输入的值构建SQL查询。 PHP脚本仅构建长度大于0的变量的SQL查询。空查询字符串参数被忽略。这个搜索脚本实际上支持一些专有搜索语法。包括如果用户在字段中输入等号'=',则SQL查询中的WHERE子句将被构建,因此...... WHERE var1 IS NULL AND var2 IS NULL ...' – batfastad