.htaccess 按htaccess规则限制URL参数

wgeznvg7  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(172)

我试图限制参数的htaccess下面是我想实现的例子
此参数有效,htaccess规则将允许此参数

example.com/test?param=somevalue

此参数应为restrict或通过htaccess更改参数名称
参数示例URL

example.com/test?param[]=somevalue

重定向至

example.com/test?param=somevalue

example.com/test

我尝试了一些规则的htaccess和限制参数没有这些括号

[]

但是我不能限制name中包含[]的参数。

oyxsuwqo

oyxsuwqo1#

您可以通过在以下条件中转义括号来捕获它们:

RewriteCond %{QUERY_STRING} (?:^|&)(foo)(?:\[\])?=(.*)(?:&|$)
RewriteRule ^ %{REQUEST_URI}?%1=%2

这会将https://example.com/test?foo[]=bar重写为https://example.com/test?foo=bar
不过要注意,对于PHP应用程序(或者其他应用程序),带有“[]”的参数有一个语义含义:这些参数是以数组的形式提供给请求的资源的。它们可能在请求的查询字符串中出现多次,这就是为什么它们是以这种方式命名的原因。所以注意不要因为修改参数而破坏应用程序的逻辑。

相关问题