ブログツール(WordPress)の初期設定
2008 年 8 月 5 日 火曜日
初めまして、watchpad.jpの中の人(2号)のmoronbeeです。
watchpadのユーザはまだまだ少ないですが、使いやすいように、楽しめるように、日々バージョンアップしていきたいと思ってますので、ユーザの皆さま、楽しみにして下さいね。
今日はこのブログツール自体の設定についてのお話を。(そんな話題かよ、とかいうツッコミはなしの方向で。。)
■ mod_rewriteによるURLの書き換え
ブログを書いたこともない人がこのブログツール自体をセットアップしたので、まあよく分からない事がたくさん(笑)。 それはそれでいいとして、今回ひっかかったのはURLの見せ方とその設定についてです。
watchpadは、ユーザ名を[@user]とすると、ユーザのページは
でアクセスすることができます。実際には、ユーザごとにプログラムやリソースがあるわけではないのでこれはそのように見せているわけなんですが、これはapacheのmod_rewriteというモジュールが「実際には存在しないURLを、あたかもあるかのごとく見せるように書き換えを行って」くれています。
で、今回何がやりたかったというと、ブログのURLをこちら(↓)のようにしたかったのです。
でもこの場合、mod_rewriteにかかると”blog”というユーザのページを表示しようとしてしまいます。これでは都合が悪い。そこで「/blogで始まる場合はrewriteしないでね」というのをmod_rewriteに伝えるわけなんですが、ようやくたどり着いた設定がこちら。
# — blog path exception —
# /blog[/]? –> /blog/index.php
# [^/blog] –> Don’t rewirte URI
#
RewriteCond %{REQUEST_URI} ^/(blog[/]?)$
RewriteRule (.*) /blog/index.php [L]
RewriteRule ^blog - [L]— この下に書き換えルールが続く —
これで表示される筈ですが、なぜかトップページ以外が表示されません。どうしてだろうなーと小一時間悩んで、昨日はそこであきらめました。(笑)
■ 表示されなかったのは.htaccessを置かなかったから
それで今日いろいろ見返していたら、WordPressの管理コンソールの[設定]>[パーマリンク設定]というところに、以下の説明と「WordPress用の.htaccessを置いてね」、と書いてあるのを見つけました。
あなたの
.htaccessが書き込み可能ならこの操作は自動的に行われますが、そうでない場合は.htaccessファイルに mod_rewrite ルールを書き込む必要があります。このフィールドをクリックし、CTRL + a ですべてのコードを選択してください。<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
あー、「/blog以下にリクエストが来て、ファイルもディレクトリもない場合はindex.phpに飛ばしてね」って書いてありますね。
これを試してみると…BINGO!! ちゃんとトップページ以外も表示されるようになりました!めでたしめでたし。
まぁ、こんなところでハマるのも自分ぐらいだと思いますが、もしかしたら誰かの役に立つかもしれないので念のためシェアしておきます。ちゃんと動くようになると、色々設定したくなりますね。
これからwatchpad.jpともども、開発チームブログの方もよろしくお願いします!