programing

WordPress, nginx 프록시 및 서브 디렉토리: wp-login.php가 도메인으로 리다이렉트하다

goodsources 2023. 2. 25. 20:57
반응형

WordPress, nginx 프록시 및 서브 디렉토리: wp-login.php가 도메인으로 리다이렉트하다

NGINX 구성에서는 WordPress 블로그가 개인 서버에 있습니다.NGINX 공용 서버는 https://www.example.com/blog/의 개인 서버 콘텐츠를 프록시합니다.

location ^~ /blog/ {    # A "subdirectory", hiding a proxied server

    proxy_pass              http://192.168.0.5:80/;    # The blog resides in the 
                                                       # private's web root, 
                                                       # not in a subdirectory
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_redirect          off;
}

이 블로그는 도메인과 서브디렉토리를 호출할 때 완벽하게 렌더링됩니다.wp-login을 기동해도 리다이렉트 GET 필드는 생성되지 않습니다.

https://www.example.com/blog/wp-login.php

siteurl과 홈 변수 모두 서브디렉토리가 있는 도메인으로 설정됩니다.

단, 로그인 성공 후 대시보드가 표시될 수 있지만 브라우저의 URL이 https://www.example.com/wp-admin,로 변경되어 대시보드 사용에 문제가 발생합니다.

블로그가 프록시 프라이빗서버에 있는 경우에도 서브디렉토리에 URL을 고쳐 쓰도록 WP를 설정하려면 어떻게 해야 합니까?

(서버 내의 서브 디렉토리는 대칭이어야 합니까?)

저도 같은 문제에 직면했습니다.해결책을 찾았습니다.이 문제를 해결하기 위해 아래 코드를 wp-config에 추가합니다.php

$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/",  $_SERVER['REQUEST_URI']);

WordPress는 다음 두 가지 변수를 사용하여 호스트 위치를 정의합니다.WP_HOME그리고.WP_SITEURL둘 다 대시보드를 사용하여 설정할 수 있지만, 설정해 두는 것이 좋습니다.wp-config.php:

define( 'WP_SITEURL', 'https://www.example.com/blog' );
define( 'WP_HOME', 'https://www.example.com/blog' );

스킴이나 호스트명을 포함한 절대 URL(상기와 같이)을 설정하는 것이 일반적이지만, 다음과 같이 리버스 프록시의 배후에 동작하는 경우는, 상대 URL 를 사용하는 것을 추천합니다.

define( 'WP_SITEURL', '/blog' );
define( 'WP_HOME', '/blog' );

개인 서버의 루트에서 WordPress를 계속 실행할 수 있습니다(직접 액세스되지 않은 경우).개인 서버를 한 단계 아래로 이동시키는 것은 조금 더 복잡하며 두 서버의 웹 서버 구성을 약간 변경해야 합니다.

다음 2개의 개서를 wp-config에 추가해야 합니다.php:

$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/",  $_SERVER['REQUEST_URI']);
$_SERVER['REQUEST_URI'] = str_replace("/wp-login.php", "/blog/wp-login.php", $_SERVER['REQUEST_URI']);

첫 번째 명령어는 모든 관리 페이지를 수정합니다.패스워드 리셋흐름에 필요한두 번째 거

4년 전부터 패스워드 리셋 플로우의 미해결 TRAC 문제를 발견했기 때문에, 가까운 장래에 이러한 회피책을 계속하지 않으면 안 될 것 같습니다.워드프레스는 대부분의 사람들이 역프록시를 할 것으로 예상하지 않는 것 같다.

언급URL : https://stackoverflow.com/questions/34090577/wordpress-nginx-proxy-and-subdirectory-wp-login-php-redirects-to-domain

반응형