[WordPress] Cloudflare 적용 후 ERR_TOO_MANY_REDIRECTS 초간단 해결방법

최근 스팸 댓글이 매우 많이 증가하여 Cloudflare를 적용하였습니다.

그런데!!

로그인을 하려니 ERR_TOO_MANY_REDIRECTS 에러가 발생하네요..

검색을 조금 해보니 Nginx를 수정하라느니 .htaccess를 수정하라는둥.. 각종 해결법이 등장합니다.

원인을 알아보니 웹서비스가 https와 http 사이에서 서로에게 반복해 전달하며 루프에 빠져 발생하는 현상입니다.

원래는 안그랬는데 왜 Cloudflare(클라우드플레어) 적용 후 이런 현상이 발생했을까요?

Cloudflare(클라우드플레어) 대시보드에서 SSL 설정메뉴로 들어갔더니 기본 셋팅이 SSL 가변으로 설정되어 있습니다.

사용자와 클라우드 플레어 사이에는 SSL(https)로 통신하나 Cloudflare와 원본서버(내 호스팅 서버)간에는 http로 통신합니다.

딱봐도 여기가 문제같습니다.. 설정을 바꿔봅시다. 위 화면의 오른쪽 구성버튼을 클릭합니다.

전체로 놓고 저장합니다.

이제 전체구간을 https로만 통신합니다. 과연 해결되었을까요?

짠!! 잘 동작합니다^^

워드프레스 멀티도메인 사용 설정하기 / WordPress using Multi-domain with Single-site

한개의 워드프레스 사이트에서 여러개 도메인을 연결해 사용하며 Redirection 이 아닌 각 도메인이 개별적으로 정상 작동하기 위해서는 wp-config.php 파일 수정이 필요하다.

wp-config.php 를 수정하지 않고 여러 도메인을 사용하는 경우 처음 설정한 메인도메인을 제외한 나머지 도메인에서는 이미지 엑스박스가 뜨기 때문에 아래 설정이 필수이다.

*원본 wp-config.php의 내용

<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don't have to use the web site, you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * Database settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://wordpress.org/support/article/editing-wp-config-php/
 *
 * @package WordPress
 */

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database' );

/** Database username */
define( 'DB_USER', 'user' );

/** Database password */
define( 'DB_PASSWORD', 'password' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'key1' );
define( 'SECURE_AUTH_KEY',  'key2' );
define( 'LOGGED_IN_KEY',    'key3' );
define( 'NONCE_KEY',        'key4' );
define( 'AUTH_SALT',        'key5' );
define( 'SECURE_AUTH_SALT', 'key6' );
define( 'LOGGED_IN_SALT',   'key7' );
define( 'NONCE_SALT',       'key8' );

/**#@-*/

/**
 * WordPress database table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the documentation.
 *
 * @link https://wordpress.org/support/article/debugging-in-wordpress/
 */
define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

멀티 도메인의 원활한 사용을 위해서는 “Add any custom values between this line and the “stop editing” line.” 이 라인 아래에 코드 추가가 필요하다.

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('WP_CONTENT_URL', "https://{$_SERVER['HTTP_HOST']}/wp-content");
define( 'WP_ALLOW_MULTISITE', true );

위 코드를 추가하면 어떠한 도메인으로 접근하여도 이미지가 잘 보이게 된다.