带参数的 NGINX URL 重写为不带参数的 URL

NGINX URL with argument rewrite to URL without argument

我的服务器上有 NGINX 后台。我不明白为什么我的规则不起作用。

如何重定向或重写它以便我可以用相同的内容打开 URL,例如:

http://www.example.com/my_dir/value/

如果我有这个URL,例如:

http://www.example.com/my_dir/filename.php?parameter=value

我尝试了一些解决方案,但没有奏效:

Case #1:
location /my_dir/ {
  if ($args ~* "filename.php/?parameter=value1") {
      rewrite ^ http://www.example.com/my_dir/$arg_param1? last;
  }
}

Case #2:
rewrite ^/my_dir/(.*)$ /filename.php?parameter= last;

Case #3:
location /my_dir {
    try_files $uri $uri/ my_dir/filename.php?$args;
}

Case #4:
location /my_dir/ {
    rewrite ^/my_dir/filename.php?parameter=(-+([a-zA-Z0-9_-]+))?$ /filename.php?parameter= last;
}

我是否必须配置 PHP 文件才能使其正常工作? 有什么想法吗?

谢谢!

试试这个:

location / {

    rewrite ^/my_dir/filename.php?parameter=(.*)/$ /my_dir// permanent;
}

或者:

location /my_dir {

    rewrite ^/filename.php?parameter=(.*)/$ // permanent;
}