IT 관련/우분투(Ubuntu) 이것저것

워드프레스 외부 접속 문제해결(접속불가,리디렉션)

islet2 2025. 4. 13. 13:35

워드프레서 설치 후 aa.aaa.org를 통한 wordpress 접속인 안되고 계속 리디렉션되는 문제 해결

워드프레스 리디렉션 문제 해결 요약

  1. **wp-config.php 파일 수정도커 컨테이너에 접속하세요:

    docker exec -it [워드프레스_컨테이너_이름] bash

    wp-config.php 파일을 편집하세요:

    apt-get update && apt-get install -y nano
    nano /var/www/html/wp-config.php

    파일 상단, <?php 바로 다음에 다음 두 줄을 추가하세요:

    define('WP_HOME', 'https://aa.aaa.org');
    define('WP_SITEURL', 'https://aa.aaa.org');
    // 포트 번호 제거 로직 추가
    if (strpos($_SERVER['HTTP_HOST'], ':') !== false) {
      list($host) = explode(':', $_SERVER['HTTP_HOST']);
      $_SERVER['HTTP_HOST'] = $host;
    }
  2. 역방향 프록시 헤더 설정

    시놀리지 역방향 프록시 설정

    • X-Forwarded-For: $remote_addr
    • X-Forwarded-Proto: https
    • X-Forwarded-Host: $host
    • X-Real-IP: $remote_addr

그래도 접속이 안되는 경우

  1. wp-cli로 URL 업데이트

    # wp-cli 설치
    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    chmod +x wp-cli.phar
    mv wp-cli.phar /usr/local/bin/wp
    
    # 옵션 업데이트
    cd /var/www/html
    wp option update home 'https://aa.aaa.org' --allow-root
    wp option update siteurl 'https://aa.aaa.org' --allow-root
    wp search-replace 'aa.aaa.org:9100' 'aa.aaa.org' --allow-root --all-tables
  2. PHP 스크립트로 URL 직접 수정

    ###

    docker exec -it [워드프레스_컨테이너_이름] bash
    cd /var/www/html

    fix_urls.php 파일을 생성합니다:

    cat > fix_urls.php << 'EOF'
    <?php
    define('WP_USE_THEMES', false);
    require_once('wp-load.php');
    
    // 홈 URL과 사이트 URL 변경
    update_option('home', 'https://aa.aaa.org');
    update_option('siteurl', 'https://aa.aaa.org');
    
    // 데이터베이스의 모든 URL 변경
    global $wpdb;
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    foreach ($tables as $table) {
       $wpdb->query("UPDATE {$table[0]} SET option_value = replace(option_value, 'aa.aaa.org:9100', 'aa.aaa.org') WHERE option_name = 'home' OR option_name = 'siteurl'");
       $wpdb->query("UPDATE {$table[0]} SET guid = replace(guid, 'aa.aaa.org:9100', 'aa.aaa.org') WHERE guid LIKE '%aa.aaa.org:9100%'");
       $wpdb->query("UPDATE {$table[0]} SET post_content = replace(post_content, 'aa.aaa.org:9100', 'aa.aaa.org') WHERE post_content LIKE '%aa.aaa.org:9100%'");
    }
    
    echo "URLs fixed successfully!";
    EOF

    그리고 이 PHP 파일을 실행합니다:

    php fix_urls.php

    이 파일을 실행한 후에는 보안을 위해 삭제하는 것이 좋습니다:

    rm fix_urls.php
  3. .htaccess 파일 수정

    docker exec -it [워드프레스_컨테이너_이름] bash
    cd /var/www/html
    nano .htaccess
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^aa\.aaa\.org:9100$ [NC]
    RewriteRule ^(.*)$ https://aa.aaa.org/$1 [L,R=301]
    
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>