nginx 将特定文件夹重写为 php 和 arg

nginx 将特定文件夹重写为 php 和 arg

尝试将 domain.tld/blog/read.php?article=first-article 重定向到 domain.tld/blog/first-article

我尝试了但没有成功,导致重定向到 domain.tld/first-article

location "^blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}
location /blog {
 rewrite ^/blog/?$ /blog/read.php?article=? last;
 rewrite ^/blog/([-a-zA-Z0-9_]+)/$ /blog/read.php?article=$1? last;
}
location ~ "^/blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}

我认为问题出在我配置的其他部分,主要是下面的第二个位置

server {
...
...
location ~ "^/([^/]+)/?$" {
 try_files $uri $uri/ /device.php?name=$1;
}

location ~ "^/([^/]+)/([^/]+)/?$" {
 try_files $uri $uri/ /device.php?name=$1&crversion=$2;
}
...

任何指示都会有很大帮助,干杯

答案1

所以快速的答案实际上是我的配置第一次没有问题,但 nginx 配置是从上到下读取的,第一个匹配项就是使用的。
所以最终的“修复”是在站点配置中添加博客部分

location ~ "^/blog/([^/]+)/?$" {
 try_files /$uri /$uri/ /blog/read.php?article=$1;
}

相关内容