WordPressのURLをカッコ良くする
Posted in IT, WordPress on 6 月 22nd, 2008 by ishikawa – Be the first to comment前回の記事でアーカイブページのアドレスを短くしましたが、http://yourhost.example.com/?p=1 の ? 以降はクエリーといって、WEBアプリケーションにオプション値を与えて挙動を変更する為の記法です。
オプションを与えて挙動を変更するという事は、オプション次第でページの内容が変わってしまうという事であり、検索エンジンに好まれません(実際の所、オプションの数が少ない場合は特に問題にはなりませんが)。見た目にも格好が悪く余り好まれませんが、WordPress ではこれをすっきりとした奇麗なURLに変更する為の機能が標準で用意されています。
ちなみに、この機能は mod_rewrite というWEBサーバの機能を拡張するモジュールが導入されていないと使えない機能ですが、xreaを初めとして、ロリポップやさくらインターネットのレンタルサーバでは標準で対応しており、特に意識する事なく使えます。(上記以外のレンタルサーバの場合は mod_rewrite が使えるかどうか確認してください)
URLはパーマリンクという言葉もある様に、コロコロ変更する訳にはいきません。なので、この機能の導入はWordPressを導入したら出来るだけすみやかに設定するべきです。(もしくは設定せずにしばらく使っているのなら、もうそのままこの機能は使わないほうが良いかもしれません)
では、早速設定しましょう。
まず、設定タブを開き、パーマリンク設定を開きます。一般的な設定の中から好きなURL形式を選んで、変更を保存ボタンを押します。設定の流れとしては以上で終了です。
ここで重要なのはやはりどのURL形式を選択するかという事です。最も短いアドレスを望む場合は、カスタム構造のフォームに直接 /%post_id% と入力します。この場合は、http://yourhost.example.com/3 といった、記事番号だけのパスで、アクセスできます。
SEOの事を考えるとURLにキーワードが入っているというのは強力なので、/%postname%/ というのも捨てがたいです。しかし、日本語のタイトルはURLエンコード(%XX形式)される上に、UTF-8のマルチバイト文字は3バイトで表現される為、日本語で10文字のタイトルの場合10*3*3で90文字にも膨れあがってしまいます。
最近のモダンなブラウザはアドレスバーやステータスバーの表示をきちんと日本語で表示してくれたりしますが、メールにURLを貼付ける時や、ソーシャルブックマークへの登録等、やたらと長いアドレスは何かと面倒や見苦しさがつきまといます。
一応回避策もあって、通常postnameはエントリーのタイトルを元に生成されますが、個別に変更できるので英語の名前をつけ変える事も出来ます。ただし、これは大変面倒ですしうっかり変更を忘れて後から変更するとなると、URLの変更という事になります。記事ごとにpostnameを人間が設定するという運用は現実的には避けた方が良いでしょう。
また、%postname% を利用する場合、%postname% のみでは不可解なアドレス解釈で正しいURLとしてアクセスが出来ない事があるので、保険として %post_id% と併用する様にしましょう。
例えば、/%post_id%/%postname%/ とすれば、http://example.com/3/日本語 というURLが http://example.com/3/日本語 といったように英数字部分までしかURLとして解釈されず中途半端なクリッカブルリンクになったとしても、http://example.com/3/ だけで正しい記事にアクセスする事が出来ます。
それらを踏まえて、当サイトでは無難に /archives/%post_id% にしています。
追記:以下の様な話があります。欠番はどうでもいいのですが、データをリストアするとパーマリンクが変更になる様で、これは重大ですね。というわけで、リンク先のように年月日+タイトルに私も変更しました。
欠番や番号が飛んだ状態で WordPress 本体でエクスポートしてインポートすると投稿 ID がずれる(つまりパーマリンクが変わってしまう)
WordPress をインストールしたら最初にしておくこと – わーどぷれすっ!
URL形式が決まったら保存をしておしまいといきたい所ですが、mod_rewrite機能を使っているため、サーバにアドレス書き換えのルールを教えてあげる必要があります。 index.php を置いたフォルダに WordPress からの書き込みが可能な場合は WordPress が自動でその設定も行ってくれますが、多くの環境では書き込み可能にはなっていないでしょうから手動で設定する事になります。
という訳で、手動で行う場合ですが、mod_rewrite 用の書式は WordPress が用意してくれています。パーマリンク設定の一番下のテキストエリアのテキストがそれです。テキストエリア内の文字列を全てコピーし、テキストファイルに貼付けて、htaccess.htaccessという名前でローカルの適当な場所(例えばデスクトップ等)に保存してください。
そのファイルを index.php と同じフォルダにアップロードして、ファイル名を .htaccess に変更します。ファイル名が.から始まるファイルは不可視ファイルとして扱われるので、FTPクライアントの設定によっては.htaccessに変更したとたん、あたかも消えてしまったかの様に感じる事があるかもしれませんが大丈夫です。消えてしまった場合はFTPクライアントの設定で、不可視ファイルを表示するとか.で始まるファイルを表示すると言った様な趣旨の項目を変更してみてください。
なお、アップロード完了後はデスクトップのhtaccess.htaccessは削除して構いません。
以上で設定完了です。ブログのトップページにアクセスして、そこから個別記事に移動してみてください。アドレスが指定した形式でリンクされているのが確認できると思います。
