Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 mod_重写规则从URL中删除m=1的字符串,而不管其位置如何?_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Regex mod_重写规则从URL中删除m=1的字符串,而不管其位置如何?

Regex mod_重写规则从URL中删除m=1的字符串,而不管其位置如何?,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,如何创建可以更改此设置的mod_重写规则: exampledomain/blog/2013/10/?view=flipcard&m=1&\u转义\u片段 为此: exampledomain/blog/2013/10/ 这是: exampledomain/blog/review of items/?view=timeslide&m=1 为此: exampledomain/blog/review of items/ 基本上是检查最后一个字符串内部是否有m=1,并且只删除最后一个字符串,而不考虑之前的

如何创建可以更改此设置的mod_重写规则:

exampledomain/blog/2013/10/?view=flipcard&m=1&\u转义\u片段

为此:

exampledomain/blog/2013/10/

这是:

exampledomain/blog/review of items/?view=timeslide&m=1

为此:

exampledomain/blog/review of items/

基本上是检查最后一个字符串内部是否有
m=1
,并且只删除最后一个字符串,而不考虑之前的斜杠数

请注意,我们并不是像在其他一些问题中那样删除m=1,我们希望去掉整个字符串,即。
?view=flipcard&m=1&\u转义\u片段

?view=timeslide&m=1
您可以在
文档的根目录中使用此代码。htaccess
文件:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)m=1(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}? [L,R=302]

(^ |&)m=1(&|$)
regex用于确保查询字符串中的任何位置都匹配了
m=1

感谢您提供了令人难以置信的速度!这是我关于stackoverflow的第一个问题,我完全被震惊了!我是否可以跟进并询问规则中的哪个元素/部分实际删除了字符串?那么,最初是如何规定的呢?我很难看穿重写代码,因为我是新手,找不到一个可以轻松分解代码的资源。谢谢
RewriteCond%{QUERY|u STRING}(^&)m=1(&&$)[NC]
在查询字符串中匹配
m=1
。每个查询参数的前面或后面都可以是
&
,这就是为什么使用
(^ |&)m=1(&|$)
正则表达式的原因。然后目标URI中的
%{REQUEST\u URI}?
正在剥离所有查询字符串。您能更具体一点吗?如果“m=1”是url的一部分,则要删除从“?”开始的所有内容并保留其余内容?