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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

Apache

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

SSL

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

URL

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

HTML

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

Q&A

解決済

2回答

13902閲覧

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

MELCK

総合スコア15

CentOS

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

Apache

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

SSL

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

URL

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

HTML

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

0グッド

0クリップ

投稿2017/04/03 07:19

編集2017/04/03 07:22

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

前回、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のサイト

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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 08:20

編集2017/04/05 02:26
lazhuward

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MELCK

2017/04/03 08:30

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

2017/04/03 09:12 編集

> 申し訳ありません、BのサイトなのですがSSLの申請?をしていないみたいです。 > この場合はhttpsでのサイト表示はできないと考えてよろしいのでしょうか。 そうですね。HTTPSさせないほうが良いでしょう。 > また、これはhttpd.conf、ssl.confどちらに書き込めばいいのでしょう。 > vhosts.confはみあたらなかったのですが新しく作成してそこにかけばいいのですかね? はい。そうです。新規作成です。 httpd.conf の中の記載で、confを【Include】しているところがあるかと思います。 #【extra】とか【conf.d】とかになってませんかね。 そのディレクトリ配下に【vhosts.conf】などの名前でファイルを作成して保存してください。
MELCK

2017/04/05 01:08

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

2017/04/05 01: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>
lazhuward

2017/04/05 02:27

> <VirtualHost *:80> の*のところはIPを入れる。であってますでしょうか? 入れても良いですが、*のままで良いと思います。 IPアドレスを入れた場合は、そのIPアドレスが入ったURLにしか有効になりません。 > ってところがあったのですがvhosts.confファイルの作成はconf.dの中でいいのでしょうか。 はい。それであってます。 > またBBBはSSLなしなので下記はいいらないという認識であっていますでしょうか。 そうですね。そこだけ削って再起動すれば良いかと思います。 あとListen忘れていたので回答に追記しました。
MELCK

2017/04/06 08:04

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

2017/04/06 09:06 編集

confの中にごみがあるのだと思います。 httpd configtest を叩いてみてください。 文法のチェックができます。 もしプロセスがゾンビになってしまったのであれば、プロセスをKillすればstartできます。 http://d.hatena.ne.jp/htz/20090106/1231204902
MELCK

2017/04/07 05:42

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

2017/04/07 09:38 編集

あ、Listenが悪かったのですね。すみません。 今、どんな状態になっているか質問に追記してもらって良いですか? どのURLで本当にどのコンテンツが読まれているのかが知りたいです。 htmlにHTMLコメントを入れてあげれば、見た目上はブラウザからみても変わらないので、 サービス中でも判別することができます。 ssl.confも存在するのであれば、それを含めて考えてあげないと上手く動作してくれません。 ssl.confとvhosts.confのどちらが後に読み込まれて有効になっているかの判別も必要です。 httpd.confの設定値は後に読み込まれた方で上書きされるので、confを一枚のテキストとしてみたときに下の方が有効になります。 Includeしている場合は、Includeファイルを読みに行って、httpd.confに戻りその後の設定値を読み込みます。
MELCK

2017/04/11 04:14

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

2017/04/11 04:37 編集

ディレクトリ名や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に持ってきたほうがわかりやすいと思ったまでです。
MELCK

2017/04/14 07:47

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

0

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

投稿2017/04/03 07:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MELCK

2017/04/03 08:17

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問