Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex htaccess:尝试从url中剪切参数,保留其他可选参数_Regex_.htaccess_Mod Rewrite - Fatal编程技术网

Regex htaccess:尝试从url中剪切参数,保留其他可选参数

Regex htaccess:尝试从url中剪切参数,保留其他可选参数,regex,.htaccess,mod-rewrite,Regex,.htaccess,Mod Rewrite,我试图从URL中剪切一个参数,但保留其他参数,我永远不知道其值 www.example.com/?useless=somevalue&foo=somevalue&bar=somevalue to => www.example.com/?foo=somevalue&bar=somevalue www.example.com/?useless=somevalue to => www.example.com/ www.example.com/?foo=somev

我试图从URL中剪切一个参数,但保留其他参数,我永远不知道其值

www.example.com/?useless=somevalue&foo=somevalue&bar=somevalue
to =>
www.example.com/?foo=somevalue&bar=somevalue

www.example.com/?useless=somevalue
to =>
www.example.com/

www.example.com/?foo=somevalue&bar=somevalue&useless=somevalue
to =>
www.example.com/?foo=somevalue&bar=somevalue

您可以使用此规则从任何位置删除命名查询参数:

RewriteEngine On

RewriteCond %{THE_REQUEST} \?(.*&)?useless=[^&]*&?(\S*)\sHTTP [NC]
RewriteRule ^ %{REQUEST_URI}?%1%2 [R=301,NE,L]
我现在所拥有的:

如果参数在中间

RewriteCond %{QUERY_STRING} ^(.+)&useless=[0-9a-z_-]+&(.+)$ [NC]
RewriteRule (.*) $1?%1&%2 [R=301,L]
如果参数是最后一个

RewriteCond %{QUERY_STRING} ^(.+)&useless=[0-9a-z_-](.+)$ [NC]
RewriteRule (.*) $1?%1 [R=301,L]
如果它是第一个,但有一些后续

RewriteCond %{QUERY_STRING} ^(.+)?useless=[0-9a-z_-]+&(.+)$ [NC]
RewriteRule (.*) $1?%1%2 [R=301,L]

但是,如果它是唯一的参数,则无法确定条件和规则。否实际上根本不起作用。无论参数位于何处。它在我的Apache上对参数的每个位置都有效。很可能你有一些本地代码/配置问题,导致这条规则不能完全被激发。可能是在CMS环境中,所以可能会有更多。正如我之前所写的,这个单一规则适用于所有3个参数为第一、最后或中间的情况。你必须把这条规则作为第一条规则抱歉,但我不能把它放在第一位,因为所有其他东西都不起作用了。另一个问题似乎是实际值看起来像www.example.com/?无用=%252525252525252525252252252FPROC%252525252525252525252252525252252252252252252252252252252252252252252252252252252252252252252252252252252252252芬维隆那么我如何匹配这些呢?除非无用的值类似于%25252525somethingsomething%2525