mod_rewriteの設定(パーマリンク形式を変更した場合にエラー表示された場合)

広告
facebookボタン
googleplusボタン
twitterボタン
ダミーボタン
bloggerボタン

「mod_rewrite」とはURLの書き換えなどを行うモジュールです。Webサーバに対して静的なURLでアクセスがあった場合に本来の動的URLへ書き換えを行う場合に使います。「mod_rewrite」を有効にするにはWordPressを動かしているWebサーバのApacheに対して設定を行う必要があります。

WordPressでパーマリンクの形式を変更した場合、設定したパーマリンクの形式でアクセスを行なうと、内部的に本来の形式である動的URLへ書き換えが行なわれます。

http://www.example.com/2012/01/picture/ ---> http://www.example.com/?p=12

その為、mod_rewriteの設定が適切に行なわれていない状態で静的な形式のURLへアクセスすると次のようなエラーが表示されます。

p2-1

パーマリンクの形式を変更したらエラーが表示されるようになった場合は、このページ記載したmod_rewriteの設定を行ってみて下さい。

mod_rewriteを有効にするための設定は2つあり、Apacheの"httpd.conf"ファイルの設定と".htaccess"ファイルへ設定を行います。ただし".htaccess"ファイルはパーマリンクの設定を行うと自動的に変更してくれます。

httpd.confファイルの設定

"httpd.conf"ファイルの設定を行います。Apache(今回は2.2系です)をWebサーバとして使用している前提となっています。"httpd.conf"ファイルをテキストエディタで開き、"LoadModule rewrite_module modules/mod_rewrite.so"を検索して下さい。

#LoadModule rewrite_module modules/mod_rewrite.so

先頭に「#」が付いている場合はコメントとなっています。先頭の「#」を削除して下さい。

LoadModule rewrite_module modules/mod_rewrite.so

次に".htaccess"ファイルが使用できるように設定します。WordPressをインストールしたディレクトリに対して「AllowOverride」を"All"又は"FileInfo"に設定します。今回は下記のような設定を"httpd.conf"ファイルの最後に追加しました。

<Directory "C:/pg/Apache/Apache2.2/htdocs/wordpress">
    AllowOverride All
</Directory>

※ ご自身の環境に合わせて変更して下さい。

設定は以上で終了です。設定が終わりましたらApacheを再起動すると設定が有効となります。

.htaccessファイルの設定

WordPressをインストールしたディレクトリにデフォルトで".htaccess"ファイルが作成されています。

p2-2

インストール直後に".htaccess"ファイルをテキストエディタで開いてみると次のような表示がされています。

# BEGIN WordPress

# END WordPress

管理画面でパーマリンクの形式を変更すると、次のような記述が自動で書き込まれます。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress

".htaccess"ファイルに書き込みができるようになっている場合は、自動的に記述が追加されたり削除されたりするので特に気にされる必要はありません。

もしパーマリンクの形式を変更した時に".htaccess"ファイルが書き込み権限が無かった場合などは画面上部に「.htaccess を更新する必要があります。」という表示がされます。

p2-3

また画面下部に変更する内容が表示されます。

p2-4

表示された内容を手動で".htaccess"ファイルに追加して下さい。

これで設定は完了です。

設定変更の確認

では前のページでエラーになった個別ページを改めて表示させてみます。

p2-5

今度はエラーにならずに個別ページが表示されました。

( Written by T.buzz.Ikura+ )

Social Button
Facebook Page