WordPressでリダイレクトをする方法 (steveltn/https-portal)
この記事の目的
この記事では、複数のドメイン,ホスト (例 : xxx.com と yyy.com) を1個のサーバーに向けるための方法を解説します。
前提
この記事では、以下を使用しているサイトを対象としています。
- wordpress
- steveltn/https-portal
- Docker Compose
また、ドメインの設定にて、今回対象とするドメイン,ホストのAレコードが
全て同一のIPアドレスを指定していることを前提とします。
(この作業ができていない方は、次に進む前にこの作業を実施してください。)
最後に、本記事では、WordPressサイトのメインのドメインを xxx.com として、
yyy.com でアクセスされた場合に xxx.com に301リダイレクトする設定をします。
これは、SEOの観点で、xxx.com と yyy.com をあたかも別サイトのように管理すると、
Googleから重複コンテンツとみなされたりアクセス数の分散により注目されていないサイトと
みなされる可能性があるからです。
Step1 : https-portal の修正
https-portal を使用しているサイトでは、外部からのリクエストが直接 WordPress に送られる訳ではなく、
一旦 https-portal でリクエストを受け取ります。
ここで、ドメインごとにどのDockerコンテナに処理を転送するかを定義します。
なので、まずここで、全てのドメインからのリクエストが WordPress に転送されるように設定します。
具体的には、
docker-compose の https-portal の DOMAINS 部分について、
カンマ区切りで全てのドメインを記載する必要があります。
念のため、docker-compose で WordPress のサイトを立ち上げるために必要な記述を全て以下に記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
version: '3' services: https-portal: image: steveltn/https-portal:1.3.0 ports: - '80:80' - '443:443' links: - wordpress restart: always environment: DOMAINS: 'xxx.com -> http://wordpress , yyy.com -> http://wordpress' STAGE: 'production' volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - /etc/docker-compose.d/certs:/etc/nginx/certs - ./server.conf:/etc/nginx/conf.d/server.conf db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: 【MySQLのユーザー名】 MYSQL_PASSWORD: 【MySQLのパスワード】 MYSQL_RANDOM_ROOT_PASSWORD: '1' wordpress: depends_on: - db image: wordpress:latest restart: always environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: 【WordPressのユーザー名】 WORDPRESS_DB_PASSWORD: 【WordPressのパスワード】 WORDPRESS_DB_NAME: wordpress volumes: db_data: {} |
この記述が終わったら、いつも通り、docker-composeコマンドでコンテナを立ち上げてください。
1 |
sudo docker-compose up --build -d |
STEP2 : Apacheの設定を変更 (.htaccess)
コンテナが立ち上がったら、WordPressのコンテナに含まれている Apache の設定を修正します。
まずは、起動済みの WordPress の Docker コンテナに入ります。
1 |
sudo docker exec -it 【CONTAINER ID】 bash |
次に、 .htaccess を修正します。
1 |
vi .htaccess |
※ vim がインストールされていない場合は次のコマンドでインストールしてください。
1 2 |
apt-get update apt-get install vim |
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^yyy\.com$ RewriteRule ^(.*) https://xxx.com/$1 [R=301,L] </IfModule> |
.htaccessを保存します。
この状態で、https://yyy.com にアクセスすると、 https://xxx.com にリダイレクトされるはずです。
おわりに
今回は、複数のドメインを 1個の WordPress に向ける方法をシェアしました。
良ければこのブログをお気に入りに登録お願いします。