質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • HTML

    8999questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • CentOS

    2713questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1822questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • SSL

    504questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

  • URL

    205questions

    URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

URLはあっているが違うページが表示されてしまう。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,322

MELCK

score 8

知識がない為、質問、説明が下手で長文になりますがよろしくお願いします。

前回、URLはあっているのに違う内容が表示される。(https://teratail.com/questions/68515)
という質問をさせてもらいました。
前回の現象は
「AというサイトとBというサイト2つあるのですが 
BのサイトのURLを打ち込んでもAのサイトに飛んでしまいます。

URL欄には確かにBのサイトのURLが表示されているのですが 
表示されるのはAのサイトの内容なのです・・・

AをAAA.co.jp BをBBB.co.jpとすると 
BBB.co.jpを打ち込んでもAのサイトの表示、URLはBBB.co.jp 
といった感じです。

サイト内のリンクで飛ぶと、BBB.co.jp/^^^や、BBB.co.jp/@@@ となるのですが 
表示内容はAAA.co.jp/^^^ AAA.co.jp/@@@ と同じ内容です。 
BBB.co.jp/***とかをみてまた違うリンクへ飛ぶとBBB~になっていたのがAAA~になってたりします。」

でした。
VirtualHostの設定が怪しいのではないかとアドバイスを頂いたので
自分なりに調べてみて、試行錯誤を繰り返し
<VirtualHost *:80>
ServerName ABAB.com
DirectoryIndex index.html index.php
AddDefaultCharset off
DocumentRoot /var/www/BBB/
<Directory "/var/www/BBB/">
AllowOverride All
Options FollowSymLinks -Indexes
</Directory>
</VirtualHost> 

と上記のものをssl.confに書き込んでみましたところ
うまくBBB.co.jpでBのサイトの表示に成功しました。

ここからが今回の本題なのですが、
Aのサイト、Bのサイト両方表示することができて喜んでいたのですが
今度はhttpsのsをとると違う方を表示してしまう現象が起きています。

http://AAA.co.jp →Bのサイト
https://AAA.co.jp →Aのサイト
http://BBB.co.jp →Bのサイト
https://BBB.co.jp  →Aのサイト

という感じで入れ違い?になって表示されてしまいます。
なにがいけないのでしょうか。

よろしくおねがいします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+3

ssl.conf は、SSL用のconfであるべきでvhosts.confというファイル名が的確です。

443ポートの記載をして、AとBのサイトを連続して書いてください。
また、DocumentRootの記載方法が誤っていますので同時に修正してください。
最後に"/"は、いりません。

Directoryも最後に"/"は入れないほうが良いかと思います。
以下に例を書いておきます。

Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName AAA.co.jp:80
    DirectoryIndex index.html index.php
    DocumentRoot /var/www/AAA
    AddDefaultCharset off
    
    <Directory "/var/www/AAA">
        AllowOverride All
        Options FollowSymLinks -Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName BBB.co.jp:80
    DirectoryIndex index.html index.php
    DocumentRoot /var/www/BBB
    AddDefaultCharset off
    
    <Directory "/var/www/BBB">
        AllowOverride All
        Options FollowSymLinks -Indexes
    </Directory> 
</VirtualHost>

<VirtualHost *:443>
    ServerName AAA.co.jp:443
    DirectoryIndex index.html index.php
    DocumentRoot /var/www/AAA
    AddDefaultCharset off
    
    <Directory "/var/www/AAA"> 
        AllowOverride All
        Options FollowSymLinks -Indexes
    </Directory> 
</VirtualHost>

<VirtualHost *:443>
    ServerName BBB.co.jp:443
    DirectoryIndex index.html index.php
    DocumentRoot /var/www/BBB
    AddDefaultCharset off
    
    <Directory "/var/www/BBB"> 
        AllowOverride All
        Options FollowSymLinks -Indexes
    </Directory> 
</VirtualHost>

ちょっとFollowSymLinksのところが動くかわかりませんが。。。
AddDefaultCharsetもいちいち設定しなくて良いかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/03 17:30

    ご回答ありがとう御座います!
    申し訳ありません、BのサイトなのですがSSLの申請?をしていないみたいです。
    この場合はhttpsでのサイト表示はできないと考えてよろしいのでしょうか。
    また、これはhttpd.conf、ssl.confどちらに書き込めばいいのでしょう。vhosts.confはみあたらなかったのですが新しく作成してそこにかけばいいのですかね?
    質問ばかりで申し訳ありません。

    キャンセル

  • 2017/04/03 18:11 編集

    > 申し訳ありません、BのサイトなのですがSSLの申請?をしていないみたいです。
    > この場合はhttpsでのサイト表示はできないと考えてよろしいのでしょうか。

    そうですね。HTTPSさせないほうが良いでしょう。


    > また、これはhttpd.conf、ssl.confどちらに書き込めばいいのでしょう。
    > vhosts.confはみあたらなかったのですが新しく作成してそこにかけばいいのですかね?

    はい。そうです。新規作成です。

    httpd.conf の中の記載で、confを【Include】しているところがあるかと思います。
    #【extra】とか【conf.d】とかになってませんかね。

    そのディレクトリ配下に【vhosts.conf】などの名前でファイルを作成して保存してください。

    キャンセル

  • 2017/04/05 10:08

    初歩的な質問で申し訳ないのですが
    <VirtualHost *:80> の*のところはIPを入れる。であってますでしょうか?
    #Include conf.d/*.conf

    Include conf.d/~~~
    Include conf.d/~~~

    ってところがあったのですがvhosts.confファイルの作成はconf.dの中でいいのでしょうか。

    キャンセル

  • 2017/04/05 10:26

    またBBBはSSLなしなので下記はいいらないという認識であっていますでしょうか。
    <VirtualHost *:443>
    ServerName BBB.co.jp:443
    DirectoryIndex index.html index.php
    DocumentRoot /var/www/BBB
    AddDefaultCharset off

    <Directory "/var/www/BBB">
    AllowOverride All
    Options FollowSymLinks -Indexes
    </Directory>
    </VirtualHost>

    キャンセル

  • 2017/04/05 11:27

    > <VirtualHost *:80> の*のところはIPを入れる。であってますでしょうか?

    入れても良いですが、*のままで良いと思います。
    IPアドレスを入れた場合は、そのIPアドレスが入ったURLにしか有効になりません。

    > ってところがあったのですがvhosts.confファイルの作成はconf.dの中でいいのでしょうか。

    はい。それであってます。

    > またBBBはSSLなしなので下記はいいらないという認識であっていますでしょうか。

    そうですね。そこだけ削って再起動すれば良いかと思います。

    あとListen忘れていたので回答に追記しました。

    キャンセル

  • 2017/04/06 17:04

    vhosts.confを作成していれたらHPがみれなくなり、vhosts.confを削除したらアパッチが再起動できなくなりました。 なにか対策はありますか

    キャンセル

  • 2017/04/06 18:06 編集

    confの中にごみがあるのだと思います。
    httpd configtest を叩いてみてください。
    文法のチェックができます。

    もしプロセスがゾンビになってしまったのであれば、プロセスをKillすればstartできます。
    http://d.hatena.ne.jp/htz/20090106/1231204902

    キャンセル

  • 2017/04/07 14:42

    Listen 80 Listen 443がssl.confにも書かれていたのが原因だったのかなと・・・
    作った vhosts.confはすぐ消したのですがなんかがのこっていたのですかね。
    プロセスもkillで殺せなかったのであせりましたw
    HPがみれなくなったのは解決しましたが本題はまだダメです・・・

    キャンセル

  • 2017/04/07 18:27 編集

    あ、Listenが悪かったのですね。すみません。
    今、どんな状態になっているか質問に追記してもらって良いですか?
    どのURLで本当にどのコンテンツが読まれているのかが知りたいです。
    htmlにHTMLコメントを入れてあげれば、見た目上はブラウザからみても変わらないので、
    サービス中でも判別することができます。

    ssl.confも存在するのであれば、それを含めて考えてあげないと上手く動作してくれません。
    ssl.confとvhosts.confのどちらが後に読み込まれて有効になっているかの判別も必要です。

    httpd.confの設定値は後に読み込まれた方で上書きされるので、confを一枚のテキストとしてみたときに下の方が有効になります。
    Includeしている場合は、Includeファイルを読みに行って、httpd.confに戻りその後の設定値を読み込みます。

    キャンセル

  • 2017/04/11 13:14

    いえいえ、コチラこそ情報が足りなすぎてて申し訳ないです。
    職場のものでいつ誰が設定したものかもわかっていなく、どこまで設定を公開して大丈夫かもイマイチわかっていなのですが、こういう場合はhttpd.conf、ssl.confの二つだけで解決できるものなのでしょうか。
    情報ありがとう御座います。
    もう少し調べてやってみようと思います。

    キャンセル

  • 2017/04/11 13:36 編集

    ディレクトリ名やIPアドレスとかホスト名、サーバ名、証明書の内容など個人を特定するような情報は伏せておけば良いですよ。
    多くの場合、知りたいのは固有名詞は必要ではなく、どういう構成でどういう設定になっているのかと
    どういう不具合になっているのかを、詳細に教えてくれれば、伝わりやすいと思われます。

    > httpd.conf、ssl.confの二つだけ
    別にaaa.confとかbbb.confとかにしてしまっても良いですよ。

    ただ誰が設定したかわからなくなってしまった時のために、
    SSLを使いたいなら、ssl.confにSSLで使う証明書などの情報を書いておく。
    VirtualHostを使いたいなら、vhosts.confにVirtualHostの情報を書いておく。
    と言う風にするのです。
    次、設定値を変更したい人が、探しやすいように。

    今回ですと、VirtualHostを使いたいという要件がありますので、
    vhosts.confにバーチャルホストの情報、ssl.confにSSL認証情報が書かれていれば良いと思います。
    ssl.confの中で<Directory "/var/www/AAA">などとせずに、vhosts.confに持ってきたほうがわかりやすいと思ったまでです。

    キャンセル

  • 2017/04/14 16:47

    ありがとうございます。
    結果から言うと解決しました。
    原因なのですがバーチャルコストの設定の
    <VirtualHost *:443> この*のところにIPを入れて設定をしていたのですが
    私が関わる前にサーバーの移動があったみたいでIPが違っていただけでした・・・
    いろいろ教えていただきまして本当にありがとう御座います。
    すごく勉強になりました。

    キャンセル

0

Apache 2.2系でしたっけ。
SSL でも VirtualHost (Apache2.2) - Qiita
の記事に従って点検を。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/03 17:17

    ご回答ありがとう御座います。
    AはSSLあり、Bはなしなのでなしの方を参考に設定を入れてみようと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • HTML

    8999questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • CentOS

    2713questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1822questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • SSL

    504questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

  • URL

    205questions

    URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。