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;
}

관련 정보