Greensleeves v2.0 / Tag: .htaccess
Notes about things I'm interested in.
Tag: .htaccess が付けられているエントリーが 2 件見つかりました。
最初は要らないと思っても、ある程度ウェブサイトを更新していくとやっぱり欲しくなるのが独自ドメイン。ご多分に漏れず、僕もドメインを取りました。green-sleeves.net を 2 年契約で。
サイト名の元ネタが超有名なイングランドの民謡なので、greensleeves.* は .com .net .org .jp と当然使用中でダメ。結局、真ん中にハイフンを入れて妥協しました。
301 Moved Permanently で新ドメインへリダイレクト
さて、新しくドメインを取ったら、旧ドメインにアクセスがあった場合リダイレクトしないといけませんね。.htaccess に以下のように記述したらうまくいきました。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^gs\.silk\.to$ [OR]
RewriteCond %{HTTP_HOST} ^fpriest\.sakura\.ne\.jp$
RewriteRule ^(.*) http://www.green-sleeves.net/$1 [R=301,L]
簡単に説明しますと、gs.silk.to 若しくは fpriest.sakura.ne.jp 下にアクセスがあった場合、www.green-sleeves.net に 301 Moved Permanently でリダイレクトする。という感じです。
例えば、http://gs.silk.to/hogehoge/foo/bar.html とかいうファイルにアクセスすると http://www.green-sleeves.net/hogehoge/foo/bar.html に 301 でリダイレクト。となるわけですね。
あとは、Google 先生にリダイレクトを認識してもらえば OK。稀に SEO スパムとして認識される場合もあるらしいですが、大丈夫だと思いたい。
MT の mt-config.cgi をちょっと修正
MT の設定も少し弄ります。mt-config.cgi を開いて、CGIPath の項目を新しいドメインに対応するように修正。
xyzzy 使いなので mapae.ph も少し修正
mapae for xyzzy を使って xyzzy 上で編集・投稿しているので mapae.ph の $RPCSERVER の項目を新ドメインに対応するように修正
行った作業を忘れないようにメモすると以上のようになりました。そのうちサーバーも移転するかもしれないので、ブックマークされている方は新しいドメインのほうで再度ブックマークの方を宜しくお願いします。RSS に関しては FeedBurner で焼いているのでそのままでも大丈夫です。
当サイトは将来 php などで動的生成したりすることになったとして、ファイルの拡張子を変更しなきゃならなくなった時 Permalink のリダイレクトなどで手間がかからないように URI の設計に所謂、クールな URI の思想を採用しています。
クールな URI の実現方法としては URI から拡張子を除去して、コンテントネゴシエーションを行うというものが有名です。この方法では .htaccess の Options +MultiViews が使えることが必須条件になります。
それじゃあ、クールな URI にしたいけど .htaccess が使えない、もしくは使えても Options +MultiViews 使えない鯖を借りてる人はどうするのさってことになるわけですが結構単純な方法で実現できたりします。
投稿時間を元に URI を決めるときを例にして説明すると例えば、2007/04/08 05:38 に投稿したとき。コンテントネゴシエーションが可能な場合以下のような URI の例が考えられます。
- http://www.example.com/2007/04/08/0538
さて、それじゃあ使えない場合の話なんですが…。
- http://www.example.com/2007/04/08/0538/
こうすればいいだけです。ファイルネームは index.ext (ext は任意の拡張子)に。例えば MT 3.34 のアーカイブマッピングでこれを実現するには
/%y/%m/%d/%h%n/%I%x
と書けばいいでしょう。
このディレクトリを使った Cool な URI は、CSS Beauty などでも Permalink に採用されています。というか、これらサイトの閲覧中に「あー、こういうやり方もあるわな。」と気がついてメモ代わりに書いたわけですが。