勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

VirtualHostを設定しIPアドレスでもアクセスしたい

   2024/02/25  Apache サーバー

apacheでVirtualHostを設定しつつ、IPアドレスでもアクセスしたかった。以下に状況と解決策をメモ。

 

状況

それぞれのドキュメントルートを以下のように設定したい。

  • IPアドレスでのアクセス「/var/www/html」
  • バーチャルホストで設定したアクセス「/var/www/html/hoge」

しかしながら上記で設定し、IPアドレスの方でアクセスすると「/var/www/html/hoge」を読み込んでしまう。

 

原因

VirtualHostを設定すると1件目がサーバーのデフォルトの設定になるらしい。

 

対策

1件目に設定したいドキュメントルートで記述しておく。以下が例。

#IPアドレスでアクセスしてくる方
<VirtualHost *:80>
    ServerName any
    DocumentRoot /var/www/html
    ErrorLog logs/error_log
    CustomLog logs/access_log common
</VirtualHost>

#ドメインあてる方
<VirtualHost *:80>
    ServerAdmin hogehoge.com
    DocumentRoot /var/www/html/hoge
    ServerName hogehoge.com
    ErrorLog logs/error_log
    CustomLog logs/access_log common
</VirtualHost>

 

その他

今までは先にドメインをあてて、サイトが増えてきたらディレクトリを作ってそこをバーチャルホスト設定していたので、本件のようなことは起こらなかった。ただ、そういうやり方だと後でディレクトリを整理するのが難儀になるので、今回のケースは覚えておく。

 - Apache サーバー

  関連記事

日本語込みのURLをRewriteRuleで書き換える方法

WordPressのパーマネントリンク的なことをhtaccessで実現したい。具 ...

htaccessファイルで海外からのアクセスをIP制限する方法

「サーバー立てたらすぐ攻撃が来る」と聞いたのでアクセスログを確認したところ、海外 ...

htaccessを置いてあるフォルダのファイルを参照

曖昧だけどhtaccessでベーシック認証とかIP制限かかってる フォルダ内のプ ...

他ドメインから画像の呼び出し(直リンク)を禁止する方法

他ドメインからの画像の呼び出し、いわゆる直リンクの禁止を行いたかった。調べるとh ...

firebugで「CORS を有効にすると解決できます」と表示される際の対応方法

Aサーバーにjsとかcssとか画像とかを置いて、Bサーバーで呼び出す際にちゃんと ...