【问题标题】:Apache mod_rewrite remove empty query string parameters?Apache mod_rewrite 删除空查询字符串参数?
【发布时间】:2012-08-30 17:53:47
【问题描述】:

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

一个简单的 PHP 脚本有一个 HTML 表单,它通过 GET 提交给自己。 HTML 表单有许多输入字段,当通过 GET 提交时,生成的 URL 可能会非常长,例如...
http://www.domain.org/script.php?var1=&var2=&var3=foo&var4= ... &var18=bar

这个 PHP 脚本只处理长度大于 0 的查询字符串参数。空的查询字符串参数被忽略。

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

我意识到我可以在我的 PHP 脚本中执行此操作,方法是处理 GET 数组并基于带有值的 GET 数组元素构建一个新的查询字符串,然后执行 HTTP 标头重定向。但这听起来很垃圾。

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

【问题讨论】:

    标签: apache .htaccess mod-rewrite query-string


    【解决方案1】:

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

    【讨论】:

    • 有问题的处理 PHP 脚本(我假设这就是您所指的)是一个搜索脚本,它根据用户在表单中输入的值构建 SQL 查询。 PHP 脚本仅使用长度 > 0 的变量构建 SQL 查询。空查询字符串参数将被忽略。这个搜索脚本实际上支持一些专有的搜索语法。包括如果用户在字段中输入等号=,SQL 查询中的WHERE 子句将因此构建...WHERE var1 IS NULL AND var2 IS NULL ...
    猜你喜欢
    • 2014-07-27
    • 2015-06-09
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2016-12-12
    • 2021-05-13
    相关资源
    最近更新 更多