はじめに
よくウェブサイトには、www.example.com のようにドメインを設定するのですが、通常の設定のままだとユーザーが直接URLを入力する際には、example.com のようにアクセスすることが多いと思います。
example.com にアクセスした際にも www有りに強制するには example.com に対して、www.example.com にリダイレクトするように設定しておけば大丈夫です。
設定ファイル内に書き込むだけなので特に難しいことはないのですが、色々な情報が出回っており、試した方法がことごとく失敗しました。
この方法であれば上手くいくと思いますので、ぜひ参考にしてください。
開発環境
- CentOS 6.8
- Apache 2.2.15 (Unix)
設定ファイル
Apacheの設定ファイルが /etc/httpd/conf.d/vhost.conf
で行うと想定しています。
/etc/httpd/conf.d/vconf
# example.com は強制リダイレクト
<VirtualHost *:80>
ServerName example.com:80
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^/(.*)$ https://www.example.com/$1 [R=301,L]
</VirtualHost>
# www.example.com に関する設定ファイル
<VirtualHost *:80>
DocumentRoot /var/www/html/example/
ServerName www.example.com:80
CustomLog /var/www/html/example/access.log common
ErrorLog /var/www/html/example/error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/example">
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
設定ファイルを変更後、Apacheを再起動して、変更を反映させます。
Apacheの再起動
$ sudo service httpd restart
おまけ
フォローお待ちしています!
- Qiita: Carat 吉崎
- twitter:@carat_yoshizaki
- はてなブログ:Carat COOのブログ
- ホームページ:Carat
サービス紹介
「数学→プログラミング→Webアプリケーション」まで一気に学べる機械学習のマンツーマン家庭教師サービス「キカガク」に興味のある方はお気軽にご連絡ください。