プロが教える店舗&オフィスのセキュリティ対策術

現在、さくらのVPSを借りてサイト立ち上げ中です。
お名前.comで登録したドメインをそのサイトに当てる設定で困っています。

これまでのDocumentRootは/var/www/htmlになっており、その中にいくつかディレクトリ(example1, example2とします)があります。
ちなみにexample1はWordPressです。
そして、ブラウザのアドレスバーに「IP/example1」と打つことによりアクセスしていました。
今回はそのうちのexamlpe1に取得したドメイン(example1.com)を当てたいと思います。
そこで、ネットの記事を参考に/etc/httpd/conf.d/にvhost.confという名前で

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html/example1
ServerName example1.com
ServerAlias www.example1.com
ErrorLog /var/log/httpd/example1.com/error_log
CustomLog /var/log/httpd/example1.com/access_log combined
<Directory "/var/www/html/example1">
AllowOverride All
</Directory>
</VirtualHost>

と記述したファイルを作り、httpdを再起動しました。

すると、example1.comでexample1のトップページにはいけるのですが、example1内の他のページにはいけません。
また、「IP/example2」と打ってそちらのディレクトリのサイトにも行けなくなります。

考えられる原因はDocumentRootが/var/www/html/example1になっていて、「IP/example2」でアクセスできない。また、WordPress内のリンクがドメインに対応できていないため、いちいち「IP/example1/...」とページを探している。
とかでしょうか。。。そうだとして対処法が分かりません。

どうすれば、取得したドメインでサイトがうまく動作し、ドメインの無いサイトにもアクセスできるようになるでしょうか?

よろしくお願いします。

A 回答 (1件)

こんな感じでしょうか。


ApacheはVirtualHostの設定を入れるとhttpd.confに設定したDocumentRootは無視され、設定が無いサーバ名やIPアドレスでアクセスが有った場合はVirtualHosディレクティブの1個目の設定を適用します。
なので、1個目にサーバのFQDNでVirtualHosディレクティブを作るなどしてあげるといいです。

==========
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName hoge.example1.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/example1
ServerName example1.com
ServerAlias www.example1.com
ErrorLog /var/log/httpd/example1.com/error_log
CustomLog /var/log/httpd/example1.com/access_log combined
<Directory "/var/www/html/example1">
AllowOverride All
</Directory>
</VirtualHost>
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
うまくいきました!!

お礼日時:2013/04/17 16:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!