查询字符串重定向的htaccess重写规则?

时间:2016-09-13 20:30:25

标签: wordpress .htaccess redirect mod-rewrite

我在wordpress中的htaccess代码块工作正常,但我不知道它的语法,但我无法理解语法。

RewriteCond %{QUERY_STRING}    "mobileSite=" [NC]
RewriteRule (.*)  /$1? [R=301,L]

例如,网址如下

  

www.example.com/?mobileSite=1

将被重定向到

  

www.example.com

代码工作正常,但我无法理解实际的语法部分。例如(.*) /$1? [R=301,L]做了什么?

mobileSite之后的数字是介于0和1之间的变量,但尽管代码实际有效,它仍未包含在RewriteCond %{QUERY_STRING} "mobileSite=" [NC]中。

请向我解释语法?

由于

1 个答案:

答案 0 :(得分:1)

如果您只想在查询参数中匹配01,请使用:

RewriteCond %{QUERY_STRING} ^mobileSite=[01]$ [NC]
RewriteRule (.*) /$1? [R=301,L]

RewriteRule分手:

(.*)  # match anything in URI and group it in captured group #1
/$1   # $1 is back-reference of captured value in (.*)
R=301 # redirect with status 301
L     # Last rule
?     # ? in the end is for stripping any previous query string

RewriteCond分手:

%{QUERY_STRING} # match from query string
^               # start
mobileSite=[01] # match mobileSite=0 or mobileSite=1
$               # end
[NC]            # flag for ignore case

参考文献: