programing

wp-admin 또는 wp-login.php에서 루프 재연결

newsource 2023. 9. 17. 13:16

wp-admin 또는 wp-login.php에서 루프 재연결

저는 MAMP를 사용하여 로컬에서 빠른 워드프레스 사이트를 만든 다음 SVN 레포로 확인했습니다.그런 다음 개발 서버에서 확인했습니다.

인터커넥트에서 검색교체 도구 스크립트를 실행하여 서버의 데이터베이스에 있는 사이트의 URL을 업데이트하는 것 외에는 변경한 사항이 없습니다.

처음에 500 서버 오류가 발생했습니다.로그를 확인해보니 이 "소프트 익셉션"은index.php그룹별로 쓸 수 있었습니다. 권한은 664개였습니다.문제없습니다. 권한을 644로 빠르게 변경하면 이를 정렬할 수 있습니다.그래서 지금은 전면이 작동하고 있었습니다.

그런데 이상하게도 사이트의 관리자 쪽이 작동하지 않았습니다.모든 브라우저에서 무한 리다이렉트 루프가 생성되었을 뿐입니다.

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

로컬 개발 버전 이후로 달라진 것은 없습니다.htaccess 파일은 표준 WordPress 파일일 뿐입니다.이상한 건...여전히 현지에서 잘 작동하고 있습니다.

그래서 어떻게 된 거지?

어떤 이유로 /wp-admin/path는 리디렉션 루프를 발생시키지만 /wp-admin/index.php는 발생하지 않습니다.따라서 .htaccess를 사용하여 다음과 같이 "RewriteBase /" 행 뒤에 다음 행을 .htaccess 파일에 추가하여 /wp-admin/path를 /wp-admin/index.php로 리디렉션할 수 있습니다.

RewriteBase /
RewriteRule  /wp-admin/ /wp-admin/index\.php [L,P]

저한테는 그렇게 통했어요.final.htaccess는 다음과 같습니다.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule  /wp-admin/ /wp-admin/index\.php [L,P]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

wp-login.php - 들게든어다는을된이과한은로 -한한은과된dd이tsre-다te6y4nodo들든windex.php오류가 발생하여 500 서버 오류가 발생했습니다.

는 했습니다의 했습니다.wp-login.php로, 떴습니다. 64로,하세요. 워드프레스 로그인 페이지가 나타났어요.

하지만 로그인하면 다른 방향 전환 루프가 발생합니다.서,시,를,,/wp-admin/index.php 은 644. . 664. 664.

이를 수정하면 다음 파일에 문제가 발생했습니다. 대시보드가 엉망이었습니다.664에서 644로 하나씩 변경하여 문제를 해결했습니다(/wp-admin/load-scripts.php, /wp-admin/load-styles.php).

따라서 권한을 재귀적으로 변경하는 것만이 상황을 정리할 수 있는 유일한 방법임이 명백해졌습니다.

내 유닉스는 정확히 최고 수준은 아니지만, 이것은 작동한 것으로 보입니다(Mac OS X Terminal에서 실행).이 WP 설치의 루트 디렉터리에서 실행했습니다.

find . -type f -perm 664 -print -exec chmod 644 {} \;

더 나은 명령이 있겠지만, 이것은 "664 권한이 있는 모든 파일을 찾아서 644로 변경하라"는 의미로 이해합니다.

그것이 제 문제를 해결해 주었습니다.

Cloudflare를 사용하는 경우 wp-config.php 파일의 TOP에 추가해 보십시오.

define('WP_SITEURL', 'https://www.example.com');
define('WP_HOME', 'https://www.example.com');
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
if(isset($_SERVER['HTTP_CF_VISITOR']) && strpos($_SERVER['HTTP_CF_VISITOR'], 'https')){
  $_SERVER['HTTPS']='on';
}

wp-config.php 파일 상단에 추가하는 것이 중요합니다. 그렇지 않으면 "미안합니다. 이 페이지에 액세스할 수 없습니다"라는 오류 메시지가 나타납니다.

크레딧: https://www.meltajon.com/dev/wordpress-wp-admin-redirect-loop-with-cloudflare-ssl

만약 당신의 웹서버가 nginx이면 당신은 nginx의 구성파일을 확인해야할수도 있습니다.있다면

if (!-f $request_filename){
    rewrite ^/(.+)$ /index.php?$1& last;
}

이 선들을 다음으로 바꿉니다.

try_files $uri $uri/ /index.php?$args;

참고 항목Nginx Pitfalls, WordPress wiki 페이지(nginx의 wiki 페이지)

nginx config의 경우 원래는 이 행만 있었고 동일한 리디렉션 문제가 발생했습니다.

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

이것을 추가한 후 모든 것이 정상이었습니다.

location /wp-admin/ {
    index index.php;
    try_files $uri $uri/ /index.php$args;
}

Cloudflare를 사용하는 경우 Cloudflare 계정의 SSL/TLS 탭에서 전체 암호화를 선택합니다.그러면 문제가 해결될 겁니다.

방향전환기를 내려놓을 수 밖에 없었어요.관리자에 접속할 수 없었기 때문에 이것을 내 기능의 맨 위에 추가했습니다.php 파일:

flush_rewrite_rules(); exit;

저장하고 사이트를 새로 고쳤습니다.그런 다음 기능에서 코드를 제거합니다.php 파일 그리고 다시 새로 고침.그렇게 해주었어요.

저는 또한 당신의 영구적인 링크를 보존하는 것이 좋은 방법이 될 수도 있다고 생각합니다.

추신. 메인 이슈는 테마-마이-로그인에서 /로그인으로 리다이렉트 되는 것 같습니다.

WP 사이트에 게시하려고 할 때 DoS 페이지를 받고 있었습니다.기능에서 권한 변경에 대한 조언을 찾았습니다.600에 대한 php 파일은 문제를 해결할 수 있고, 또한 그 파일에 스크립트 스니펫을 추가할 수 있습니다.WP 도움말 페이지였습니다.저는 해결책으로 출판사에 갈 수 있었습니다.편집기를 열려고 해도 여전히 DoS가 있습니다.

제 문제는 하드디스크가 꽉 차 있다는 것이었습니다.wp-login.php로 리디렉션되는 워드프레스 관리 패널에 로그인하려고 했습니다.몇 개의 파일을 삭제한 순간 다시 로그인할 수 있었습니다.

선을 제거하려면 다음과 같이 하십시오.

define('DOMAIN_CURRENT_SITE', 'www.sitename.de');

define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

wp-config.php그 일을 해야 합니다.

이 선들은 다중에 필요하지 않습니다.

사이트 사용 폴더에서 사이트에 대한 구성을 편집하고 다중 사이트 리디렉션 규칙을 추가해야 합니다.Ubuntu 14.04의 경우 /etc/nginx/sites-available에서 경로를 찾을 수 있습니다.

서버 블록에 다음 블록을 추가하면 무한 리디렉션 루프를 피할 수 있습니다.

#Rewrite multisite '.../wp-.*' and '.../*.php'.
if (!-e $request_filename) {
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
    rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}

WP Migrate DB로 작성된 db 스크립트를 복원하기 때문에 저의 경우에도 비슷한 문제가 있었습니다.스크립트에는 mysql에서 스크립트를 실행하고 wp-config를 가리키기 전에 수정해야 하는 "##DEV URL ##"과 같은 병합 태그가 있었습니다.정확한 데이터베이스로 php.

제 경우에는 아파치의 것이었습니다.DirectoryIndex이슈. 더wp-admin에 의해 접근되고 있었습니다.wp-admin/index.php함께는 아니지만wp-admin보여주기를ERR_TOO_MANY_REDIRECTS.

아파치의 것처럼 들립니다.DirectoryIndex"무제한"으로 설정될 수 있습니다.이것을 상단에서 재설정해 보십시오..htaccess파일:

DirectoryIndex index.php

전체 답변은 여기서 보세요./index.php가 없으면 wp-admin으로 관리 대시보드에 액세스할 수 없습니다.

nginx가 있는 경우 인덱스 구성도 확인합니다.저는 한가지 문제가 있었습니다.다음과 같이 설정했습니다.

server {
    server_name _;
    root /var/www/html;
    index /index.php;
}

그래서 보시다시피 저는 index.php를 trailing slash로 설정했는데, 이는 모든 다시 쓰기 요청이 document_root의 index.php로 간다는 것을 의미합니다.WP의 경우 wp-admin 디렉토리에 자체 인덱스가 있기 때문에 잘못된 것입니다.php

위의 답변들은 저를 꽤 가깝게 만들었습니다.우리의 특별한 경우, 어떤 시점에서 누군가가 사이트 루트 및 관리 폴더의 htaccess 파일에 일부 규칙을 추가하여 일부 화이트리스트 IP를 제외한 모든 곳의 트래픽을 차단했습니다(wp-admin 액세스 시도 시).

예:

<Files wp-login.php>
   order deny,allow
   Deny from all

   # Allow from this IP address
  allow from 123.45.67.89
</Files>

두 파일의 화이트리스트에 IP를 추가하면 문제가 해결되었습니다.

다른 서버에서 백업을 복원한 후에도 동일한 문제에 직면했습니다. 이런 식으로 해결하는 것은 유망한 문제였습니다.

  chown -R www-data:www-data          /var/www
  chmod -R g+rwx                     /var/www

어디에/var/www웹 사이트 파일을 저장할 장소, 환경설정에 따라 적합한 경로로 대체합니다. 예를 들어/usr/share/nginx/www<< 기본 Nginx

언급URL : https://stackoverflow.com/questions/14532520/redirect-loop-on-wp-admin-or-wp-login-php