統一してなにか良いことあるの?
統一して良いことというのは、管理が楽だったりURLが1度変わるだけという点です。
SSL対応のサイトに接続したりする人がおられると思いますが、制作している側からすると"どちらでアクセスされるのかわからない"ということがあります。そのため、このサイトでは内部リンクではURLを使わずに更新するようにしています。Movable TypeなどのCMSを利用していると、SSL対象のページにはこのURLで...という対応が正直めんどくさくなるというのもありますが。
全部SSL対応にすればいいじゃん
多分、ここまで読むとそう思われる方もおられるかもしれません。ごもっともな意見なのです。
最近、NTTドコモを始めとした企業サイトがすべてのウェブサイト・ページでSSL通信を用いたサイト運営を初めています。正直、どうして保護しているのか突っ込みたい所があるのですが。(閲覧履歴が〜とかだと思う)
ただ、すべてHTTPS通信にしてしまうと以下のデメリットが発生します。
- アクセスするまでに時間がかかる
- 非公式テザリングユーザーが涙目になる(EasyTetherとか
- 証明書を毎年更新しないといけない(=高コスト)
会員制サイトを構築してしまうとどうしてもメールアドレス等が個人情報となってしまうため、写真素材サイトでは構築していないのが現状ですよね。(それ以外にも管理が面倒とかあるかもだけど)
SSL対応がすべて良いというわけではないのです。
対応方法
レンタルサーバーを使っている場合は.htaccessファイルを利用できれば対応することが可能です。また、VPSであれば、以下のコードをバーチャルホストに追加することで対応できますし、Apacheを使っていれば.htaccessで対応することができます。
ドメインはexample.comで作成していますので、各環境に合わせて設定してください。
レンタルサーバーの場合
wwwなしに統一する場合
deny from all RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? [NC] RewriteRule ^(.*) http://example.com/$1 [R=301,L] order deny,allow
wwwありに統一する場合
deny from all RewriteEngine on RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC] RewriteRule ^(.*) http://www.example.com/$1 [R=301,L] order deny,allow
Apacheの場合
以下のコードを追加してください。(conf.d以下に新しくファイルをつくるなり、httpd.confの一番下に記述)
ServerName www.example.com Redirect / http://example.com/
nginxの場合
以下のコードを追加してください。
server { listen 80; server_name www.example.com; rewrite ^ http://example.com$request_uri? permanent; }
※ wwwなしで統一、ありの場合は逆で。