programing

워드프레스 nginx 리다이렉트루프

abcjava 2023. 3. 7. 20:57
반응형

워드프레스 nginx 리다이렉트루프

그래서 어제 "/root" 디렉토리에 워드프레스를 설치하는 방법에 대해 질문이 있었습니다.나는 그 일을 잘 하지 못했고 그 일은 포기했다.

따라서 현재 워드프레스는 "/var/www/wordpress" 폴더에 있습니다(따라서 별도의 폴더 아래에 있음). (중요하다면 Ubuntu 12.04 LTS를 사용합니다.)

문제는 모든 것을 설정한 직후(거기서는 모든 것이 잘 동작하고 있었다) 관리 패널 페이지로 리다이렉트 된 것입니다.블로그에 접속하려고 하는 순간까지 모든 것이 잘 되어가고 있었습니다.

제 블로그의 URL 주소는 blog.mysite.com 입니다.그렇기 때문에 NGINX를 사용하는 이유는 1대의 서버에 2개의 다른 애플리케이션(및 환경)이 있고, 그것들을 구별할 필요가 있기 때문입니다.

blog.mysite.com/wp-admin(/wp-wp.http.http:/wp.http:/wp.http.http:/wp.http:/wp.http:/wp.http:/http:/http:/http:/http:/http:/http:/http:blog.mysite.com)는 정상적으로 동작하고 있습니다.

관리 패널에서 "WordPress Address(URL)"와 "Site Address(URL)"를 모두 "http://blog.mysite.com"로 설정합니다.둘 중 하나를 "http://blog.mysite.com/wordpress"과 같은 다른 것으로 수정하는 것은 전혀 도움이 되지 않습니다.

.htaccess 파일은 비어 있지만 기본 permalinks를 사용하고 있기 때문에 문제가 되지 않습니다(단, 잘 모르겠습니다).

nginx 및 apache2 루트 지시어는 모두 "/var/www/wordpress"를 가리키고 있습니다.스태틱 파일(css,js)은 동작하고 있습니다.

어떻게 하면 이 문제를 해결할 수 있을까요?아무쪼록 잘 부탁드립니다!

잘 부탁드립니다!

가장 예쁜 수정은 아니지만 테마에서 리디렉션 필터를 제거합니다.functions.php파일은 나에게 효과가 있었다.

remove_filter('template_redirect', 'redirect_canonical');

OP의 답변에 제공된 링크:
워드프레스는 무한 301 리다이렉트 루프를 실행했습니다.

마침내 해결책을 찾았습니다.

http://www.violato.net/blog/php/88-wordpress-did-infinite-301-redirect-loop

이것이 나와 같은 문제를 안고 있는 다른 사람들에게 도움이 되기를 바랍니다.

여러분 감사합니다.

Nginx를 Apache의 리버스 프록시로 사용하는 것과 비슷한 문제가 있었습니다.

몇 시간 후, 나는 그것이 에 의해 발생했다는 것을 알았다.$_SERVER["REQUEST_URI"]세팅되어 있다index.php실제 URL 대신 Nginx에 의해 Wordpress가 제거하려고 했습니다.index.php"URL"이 없는 index.phpwp-includes/canonical.php.

제 해결책은 이런 걸 쓰는 거예요.

proxy_pass http://111.111.111.111:8080$request_uri;

ㅇㅇㅇㅇㅇ를 ,$request_uri쳤습니니다다

과거에 Apache에서 Nginx로 전환할 때 문제가 많았는데, Apache를 삭제하면 모두 해결되어 Nginx에 간섭을 일으켜 모든 서버에 문제가 발생하였습니다.다음은 Nginx와 Wordpress 가이드 양쪽에 따라 Nginx를 위한 워드프레스 구성입니다.

server {
    listen 80;
    server_name blog.mysite.com;

    root /var/www/wordpress;
    index index.php;

    charset utf-8;

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

    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log off; log_not_found off; expires max;
    }

    location ~ \.php$ {
        try_files $uri /index.php;

      fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # CHANGE THE LINE ABOVE IF NEEDED
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

서버를 전환할 때 관리 패널에서 아무것도 변경할 필요가 없었습니다.그냥 정상적으로 동작했습니다.

제 경우 리다이렉트루프는 wp-admin 페이지에만 영향을 미치기 때문에 행의 선두에 추가했습니다.

if (is_admin) remove_filter('template_redirect', 'redirect_canonical');

그리고 리다이렉트 표준이 프런트 엔드에서 계속 제 역할을 하고 있습니다!

이게 다른 사람에게 도움이 됐으면 좋겠어!

요청을 전송하기 위해 nginx를 사용했기 때문에 이 문제가 발생했지만 nginx는 HOST 헤더를 보존하지 않았습니다.

을 내 이 my my my my에 location블록이 예상대로 작동하기 시작했습니다.

    # Set proxy headers for the passthrough
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # Let the Set-Cookie header through.
    proxy_pass_header Set-Cookie;

언급URL : https://stackoverflow.com/questions/19979843/wordpress-nginx-redirect-loop

반응형