WordPress での Pretty 固定リンクの有効化
作成者 : Ruslan Yakushev
発行日 : 2008 年 5 月 28 日 (作業者 : ruslany(英語))
更新日 : 2008 年 12 月 3 日 (作業者 : ruslany(英語))
前提条件
このチュートリアルには、次の前提条件が必要です。
- FastCGI および PHP と一緒に IIS 7.0 がインストールされている (PHP をインストールする必要がある場合は、この記事の手順に従ってください)。
- WordPress がインストールされている (この記事の手順に従うか、公式の WordPress サイトの手順を使用してください)。
- URL の書き換えの Go Live リリースがインストールされている。
このチュートリアルの目的では、WordPress が Web サイトのルート ディレクトリにインストールされていると仮定します。WordPress がサブディレクトリにインストールされている場合は、このチュートリアルで使用する書き換えルールは、WordPress ファイルが存在する同じサブディレクトリ内の Web.config ファイルに含まれていなければなりません。
WordPress での pretty 固定リンクの有効化
WordPress がインストールされたら、管理者として WordPress にログオンして、[設定] タブをクリックします。[パーマリンク設定] サブタブをクリックします。これにより、WordPress でブログ投稿用に固定リンクを生成する方法をカスタマイズできるページに移動します。
このページで、[カスタム構造] オプションを選択し、テキスト ボックスに
「/%year%/%monthnum%/%day%/%postname%/」を入力します。
[変更を保存] をクリックします。
ここで、すべてのブログ投稿リンクに指定した形式の URL が存在することを確認します。しかし、これらのリンクのいずれかをクリックした場合、Web サーバーは 404 エラー ("ファイルが見つかりません" というエラー) を返します。これは、WordPress が、Index.php ファイルに対して "pretty 固定リンク" を持つ要求を書き換えるために、サーバー内の URL の書き換え機能に依存しているからです。次のセクションでは、この機能を提供するルールを作成します。
書き換えルールの作成
WordPress ファイルがインストールされている同じディレクトリに配置される Web.config ファイルを作成して開き、次の XML セクションを system.webServer 要素に貼り付けます。
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
このルールは要求されたどの URL にも一致します。この URL がファイルまたはファイル システム上のフォルダーに対応しない場合は、Index.php に対して URL を書き換えます。そのとき、WordPress では、ルールによって変更される以前の元の URL を構成する REQUEST_URI サーバー変数に基づいて機能するコンテンツを決定します。
書き換えルールのテスト
書き換えルールが Web.config ファイルに保存された後で、Web ブラウザーを開き、WordPress ブログの固定リンクのいずれかをクリックします。各固定リンクに対して Web サーバーによって正しいコンテンツが返されることを確認してください。
まとめ
このチュートリアルでは、URL 書き換えモジュールを使用して、WordPress ブログ エンジンで "pretty 固定リンク" を有効にする方法について説明しました。URL 書き換えモジュールを使用すると、ユーザーと検索エンジンで簡単に使用できる URL を作成できます。そして WordPress は、この URL 書き換えモジュールを IIS 7.0 で活用できる、数多くの一般的な PHP アプリケーションの一例です。