我正在构建一个具有多种可选 $_GET[] 参数的站点:我的 url 的范围可以从
index.php?mod=reg
to
index.php?mod=complicated¶m1=foo
或
index.php?mod=EvenMoreComplicated&w=4&x=1&y=2&z=3
.
我知道,在某种程度上,这可以用一大堆带有 [L] 参数的重写规则来处理,但是,没有更简单的方法来处理这个,而不必手动指定每个可能的 $_GET[] 参数?
我正在构建一个具有多种可选 $_GET[] 参数的站点:我的 url 的范围可以从
index.php?mod=reg
to
index.php?mod=complicated¶m1=foo
或
index.php?mod=EvenMoreComplicated&w=4&x=1&y=2&z=3
.
我知道,在某种程度上,这可以用一大堆带有 [L] 参数的重写规则来处理,但是,没有更简单的方法来处理这个,而不必手动指定每个可能的 $_GET[] 参数?
在许多框架中,这个问题是通过一个独特的重写规则来解决的:
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
这意味着您可以在一个参数中获取所有查询字符串$_GET['url']
然后,parse_str()函数在:
parse_str($_GET['url'], $queryArgs);
这将为您提供 $queryArgs 中的 $_GET 等价物。
此外,这是演示代码,不要忘记在真实代码中进行清理/过滤。
希望这可以帮助 !