mod_rewriteでドメイン統一してみた

投稿日: / 更新日:

そういえば、と思って確認してみたところ、実は今までは http://ksworks.org/ でも http://www.ksworks.org/ でも、どちらのドメイン名を指定してもこのブログに接続できてました。
まぁ、ぶっちゃけどうでもいい話w

Twitterやらなんやらで結構URLを流していたりするので、"www"を付ける方向で統一するようにmod_rewriteを掛ける様に設定変更しました。
もし不具合を見つけていただけましたら、お気軽に@ksworksまでご報告ください(^_^;)

 

設定方法の詳細は、余り難しいことは無く、単純なRewriteRuleをしこんだだけ。
せっかくなので手順を公開。
...まぁ、普通に"www 統一"とかで検索すると大量に情報が出てくるので悩むことはほとんど無かったりする訳ですが。

    <VirtualHost xxx.xxx.xxx.xxx:80>
      ServerName   www.ksworks.org:80
      ServerAlias  ksworks.org
+     <IfModule mod_rewrite.c>
+       RewriteEngine on
+       RewriteCond %{HTTP_HOST} ^ksworks\.org
+       RewriteRule ^/(.*) http://www.ksworks.org/$1 [R=301,L]
+     </IfModule>
      UseCanonicalName Off

[2012-05-09追記]
現在、サーバ移転などの都合によりhttpd.confから.htaccessに設定を移して運用しています。現状の設定についてはこちらを参照ください

変更内容はこんな感じで、+の行を単純に追加しています。
これで、HTTP_HOSTが"ksworks.org" の場合に"www"付きの "www.ksworks.org" として301でリダイレクトしてくれるようになると。

自分の場合は httpd.conf を変更してRewriteRuleを追加しました。
人に依っては .htaccess に追加したい事もあると思いますが、その場合は同じ内容を .htaccess に入れれば良いだけです。 設定変更後 httpd restart して、適当に思いついたパターンを試してみて、問題なさそうだったので作業完了。
作業そのものより、この記事書く方が時間が掛かりましたw

因みに、ちょっと調べてみた感じでそのまま書いていたのですが、当初のRewriteRuleは以下の様にしてました。

    RewriteRule ^(.*) http://www.ksworks.org/$1 [R=301,L]

この場合、"http://ksworks.org/hoge"が"http://www.ksworks.org//hoge"に変換されてしまうので、余計な / が格好悪いなぁと思ったので直しています。
これで動かなかってたらどうしようw


- スポンサードリンク -