programing

하위 폴더에서 WordPress REST API의 nginx를 구성하려면 어떻게 해야 합니까?

megabox 2023. 10. 21. 10:18
반응형

하위 폴더에서 WordPress REST API의 nginx를 구성하려면 어떻게 해야 합니까?

도메인 아래 하위 폴더(즉, 다중 사이트가 아닌)에 여러 워드프레스 사이트를 설정하려고 하는데 REST API 끝점을 구성하는 데 어려움이 있습니다.예를 들어 이 끝점은 잘 작동합니다.

https://example.com/site1/?rest_route=/wp/v2/posts

그러나 이 엔드포인트는 404를 제공합니다.

https://example.com/site1/wp-json/wp/v2/posts

nginx 구성에서 다음과 같은 규칙을 사용하여 실패한 url을 작동 url에 다시 쓰려고 했습니다.

location /site1/wp-json {
    rewrite ^/site1/wp-json(.*)$ /site1/?rest_route=$1;
}

location /site1/ {
   try_files $uri $uri/ /site1/index.php$is_args$args;
}

워드프레스 문서nginx 위키에서는 wp-json에 대한 특별한 취급을 볼 수 없습니다.내가 뭘 놓치고 있는 거지?사이트에 대한 영구 링크가 다음과 같이 설정되어 있습니다.Numeric(만약 그것이 역할을 할 수 있다면 https://example.com/site1/archives/123)

갱신하다

수정된 전체 구성 파일의 Gist와 구성 구문 lints ok:

nginx -c /etc/nginx/nginx.conf -t

nginx: 구성 파일 /etc/nginx/nginx.conf 구문이 정상입니다.
nginx: 구성 파일 /etc/nginx/nginx.conf 테스트가 성공했습니다.

WP 5.7에서 나도 방금 이것을 쳤습니다.예를 들어, "평범한" 옵션과 함께, 꽤 영구적인 링크 없이.?p=123, nginx WP 설치는 다음과 같은 요청을 사용합니다.

/index.php?rest_route=/wp/v2/users/&who=authors...

그리고 이것들은 모두 잘 작동합니다.

하지만 만약 내가 "Post name"과 같은 꽤 영구적인 링크를 활성화한다면,/sample-post/, 다음과 같은 요청을 하기 시작합니다.

/wp-json/wp/v2/users/?who=authors...

그리고 이것들은 모두 404를 돌려줍니다.예를 들어 게시물 편집 또는 게시가 실패하고 브라우저 개발 도구는 이 형식의 문자열 404를 표시합니다.

하지만 이제 우리는 작동하는 패턴을 알게 되었고, 해결책은 분명합니다. 작동하지 않는 형식을 작동하는 형식에 매핑하기만 하면 됩니다.

# Resolves WP Gutenberg 404 issue
location /wp-json {
    rewrite ^/wp-json(.*)$ /index.php?rest_route=$1 last;
}

이렇게 해결할 수 있었습니다.

location /wordpress/ {
  rewrite ^/wordpress/wp-json/(.*?)$ /wordpress/index.php?rest_route=/$1 last;
}

재작성 지침은 아래와 같이 작성되어야 한다고 생각합니다.

server {
    location /site1/wp-json
        {
            rewrite ^(/site1/wp-json.*)$ /site1/?rest_route=$1 last;
        }
}

하위 폴더의 사이트 페이지가 이미 작동 중인 경우 url에 index.php를 추가하기만 하면 됩니다.

https://site1.com/site2/index.php/wp-json/

하위 폴더에서 웹 사이트 페이지가 여전히 작동하지 않으면 nginx/sites-available/website.conf 파일에도 다음 코드를 추가합니다.

location /site2 {
        rewrite ^(/[^/]+)?(/wp-.*) /site2/$2 break;
        rewrite ^/site2/(.*)$ /site2/index.php?q=$1 last;
}

언급URL : https://stackoverflow.com/questions/56930084/how-do-i-configure-nginx-for-wordpress-rest-api-in-sub-folder

반응형