我似乎找不到限制某些查詢的方法。現在我有這個
if ($args ~* "(.*&)?page="){
set $wrongP W;
}
if ($args !~* (.*&)?page=(2|12|24)$){
set $wrongP "${wrongP}R";
}
if ($wrongP = WR){
rewrite ^(.*)$ $uri? permanent;
}
這正是我想要的,問題是如果url有多個參數fox ex。 /somefile.html?page=2&arg=file 它會刪除所有參數。我猜是因為第二個 if 。
如何檢查具有多個變數的 url,並僅在頁面變數不等於 2、14 或 24 時刪除所有變數?
答案1
我想你需要這樣的東西(使用map
):
map $arg_page $need_redirect {
default "1";
"" "0";
"2" "0";
"14" "0";
"24" "0";
}
server {
...
if ($need_redirect) {
rewrite ^ $uri? permanent;
}
...
}