我目前正在尝试重写此内容:
index.php?page=Example¶mX=1¶mY=2
到
index.php/Example/1/?paramY=2
但是,这不起作用:
rewrite ^index\.php/\?page=Example¶mX=([0-9]+)¶mY=([0-9]+)$ /index.php/Example/$arg_paramX/?paramY=$arg_paramY permanent;
在apache2中,我目前使用
RewriteCond %{QUERY_STRING} page=Example¶mX=([0-9]+)¶mY=([0-9]+)
RewriteRule ^index\.php$ /index.php/Example/%1/?paramY=%2 [R=permanent,L]
正在发挥作用。
答案 0 :(得分:0)
您无法匹配nginx中的查询字符串参数,您必须尝试使用if
之类的内容检查各个参数:
location /index.php {
if ($arg_page = "Example") {
rewrite ^ /index.php/Example/$arg_paramX/?paramY=$arg_paramY permanent;
}
}
如果您确实需要验证paramX
和paramY
是[0-9]+
,那么您需要对嵌套的IF语句进行某种破解,例如{{3} }。