【Apache】単一のIPに複数のVirtualHostを設定するときの記述の順番は非常に重要だった

2018-08-25
apache
    

目次

概要

完全https化とドメイン移行する為に、ApacheのVirtualHostにリダイレクトの設定を追加した。 記述自体は間違っていなかったものの、設定の記述の順番を間違ってたためか、正しく遷移しなくなっていた。 順番を入れ替えたら正しく動いた...という話

環境

  • Apache 2.4
  • Bitnami WordPress

VirtualHostの設定

※ 移行前のドメインがs-yoshiki.com 移行後のドメインがtech-blog.s-yoshiki.com とします。

<VirtualHost *:80>
ServerName s-yoshiki.com
ServerAlias www.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com
<!-- 省略 -->
</VirtualHost>

<VirtualHost *:443>
ServerName s-yoshiki.com
ServerAlias www.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com www.s-yoshiki.com
<!-- 省略 -->
</VirtualHost>

これが元々の設定。 これを以下のように変更した。

<VirtualHost *:80>
ServerName tech-blog.s-yoshiki.com
<!-- 省略 -->
</VirtualHost>

<VirtualHost *:443>
ServerName tech-blog.s-yoshiki.com
<!-- 省略 -->
</VirtualHost>
<VirtualHost *:80>
ServerName s-yoshiki.com
ServerAlias www.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com
Redirect / https://tech-blog.s-yoshiki.com
</VirtualHost>

<VirtualHost *:443>
ServerName s-yoshiki.com
ServerAlias www.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com www.s-yoshiki.com
Redirect / https://tech-blog.s-yoshiki.com
</VirtualHost>

Apache再起動後立ち上がらず... 調べたところVirtualHostの記述の順番に問題があったよう。 http://www.go-next.co.jp/blog/server_network/4084/

<VirtualHost *:80>
ServerName s-yoshiki.com
ServerAlias www.tech-blog.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com
Redirect / https://tech-blog.s-yoshiki.com
</VirtualHost>
<VirtualHost *:443>
ServerName s-yoshiki.com
ServerAlias www.tech-blog.s-yoshiki.com blog.s-yoshiki.com s-yoshiki.com
Redirect / https://tech-blog.s-yoshiki.com
</VirtualHost>

<VirtualHost *:80>
ServerName tech-blog.s-yoshiki.com
<!-- 省略 -->
</VirtualHost>

<VirtualHost *:443>
ServerName tech-blog.s-yoshiki.com
<!-- 省略 -->
</VirtualHost>

これに変更したら、問題なく動いた。

完全https化

httpで来たものは問答無用でhttpsにリダイレクト

<Directory "/hoge/">
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://tech-blog.s-yoshiki.com%{REQUEST_URI} [R,L]
</Directory>
    

関連記事

php-fpmのステータスページを表示 Apache & htaccess
試した環境 php-fpm の pm.status_path について php-fpmのconfの設定 .htaccess の設定 アクセスしてみる 参考にしたサイト Apache環境で php-fpm のステータスページを htaccess…

PHP-FPM(php7.4) Apache2.4 on Ubutnu20.04 Webサーバ構築
環境 パッケージの更新 Apache と PHP のインストール Apache のサービスを開始する PHPファイルを作成 参考にしたサイト Ubuntu20.04 に PHP7.4 + Apache2.4 をインストールしてWeb…

PHP-FPM(php7.4) Apache2.4 でWebサーバ構築 on CentOS8
環境 php7.4 のインストール apacheのインストール php-fpmの設定を変更する php-fpm の起動 apacheの起動 確認 おまけ: エラーと解決方法 "System has not been booted with systemd as…

CentOS8 に PHP7.4 インストール
環境 普通にインストールしようとするとphp7.2がインストールされる modularityについて php7.4 インストール CentOS8 に modularity を利用して PHP7.4をインストールした際のメモです。 環境 CentOS8.…

UNIXドメインソケット通信 vs INETドメインソケット通信 php-fpmで動作させる場合の違いについて
結論 ソケット通信について ソケットについて ソケット通信の種類 UNIXドメインソケット通信を行う場合のメリット 参考にしたサイト php-fpm の設定方法で調べた際にIPとポートで設定するパターンとUNIX…

AWS EC2 + Bitnami で始める WordPress
Bitnami WordPressを使うメリット 個人的に感じた3つのメリット Amimoto AMI と比較して Bitnami AMIについて Bitnami WordPressの構成と設定 サーバの構成 各種設定 MySQL WordPress Apache…

Ubuntu18.04にApache MariaDB PHP7.2 をセットアップ
環境情報 モジュール類の更新 Apacheのインストール PHP7.2のインストール インストール 動作確認 MariaDBのセットアップ MariaDBのインストール データベースと作業用ユーザの作成 参考 AWS の EC2 の Ubuntu18.0…

AWS Lightsail + bitnami に自作アプリケーションを作って共存させる + ドメイン振り分け設定
はじめに 環境 アプリケーションの作成 Apache - Virtual Hostの設定 ディレクトリ構成 設定ファイルの説明 certs/server.key & server.crt httpd-app.conf httpd-prefix.conf httpd…

フランスからWordPressに悪意のあるリクエストが大量に届くので解析
ログファイルの場所 アクセスログの内容 実際のアクセスログ 参考 以前紹介した、AWS Lightsail + WordPressサーバに 定期的に大量のアクセスが届くのでログを調べてみました。 ↑写真はアクセスがあった時のGoogle Analytics…

【Python】Django2.0 + Python3 + ApacheでWebアプリケーション構築
環境 インストール Djangoプロジェクト作成 Apacheの設定 参考 Django + Python3 + Apache + wsgi でWebサーバを構築した。 VirtualHost…

最新の投稿

Node.js で作成した REST API を Docker化
Node.jsでREST APIを作成 コンテナ化 コンテナ化定義 コンテナ化作業 参考 Node.js で作成した REST API を Docker化した際のメモです。 Node.jsでREST APIを作成 まずはNode.js…

JavaScriptで優先度付きキューを実装する
優先度付きキューについて ソース 参考 JavaScriptで優先度付きキュー (プライオリティキュー) を実装する 優先度付きキューについて 具体的には次のような機能があります。 キューに対して要素を優先度付きで追加 (push…

AWS Amplify で コンテナベースのデプロイを行い REST API を構築
検証した環境 やってみる 初期準備 パイプラインを確認 終了処理 参考 AWS Amplify で コンテナベースのデプロイを行い REST API を構築した際のメモです。 検証した環境 amplify 5.1.…

Pythonでソケット通信を実装しメッセージの送受信を行う
ソース server.py client.py 動かしてみる 参考 Pythonでソケット通信を実現する方法です。 ソース server.py サーバ側のソースです。 client.py…

next_permutationをJSで実装する
ソース 使い方 参考 C++で提供されている順列を生成する next_permutation のJS実装です。 ソース 順列が存在する場合はtrueを返し、そうでなければfalse…

応用情報技術者試験の合格体験記
受験時のステータス 受験結果 対策 スケジュール 午前問題 午後問題 参考書等 令和…

[JS]ラジアンから度数に度数からラジアンに変換する
コード 度数からラジアンへ ラジアンから度数へ サンプル ラジアンから度数に度数からラジアンに変換する際のスニペット。 コード 度数からラジアンへ ラジアンから度数へ サンプル

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

JS/TSのclassでclass名を取得する
コード JS/TSのconstructorを利用して自分自身のクラス名を取得する際のメモ。 コード このコードの結果は次のようになります。

Tags

Dates

s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV
© 2021   404 motivation not found