wordpressでパーマリンクの設定を変更しようとした時にエラー画面(403)が表示され、ページが表示されなくなりました。
パーマリンクを設定した場合、.htaccessを作成しリライトルールが設定されます。
この.htaccessファイルを削除すれば、元の画面が表示されますが、パーマリンク設定は適用されていないのでパーマリンク設定前のURLで表示されます。
今回は、パーマリンクを設定した際の解決方法をメモします。
■ Apacheにmod_rewriteがインストールされているか調べる方法
「mod_rewrite」とはドメイン以下URLの書き換えなどを行うモジュールです。
SSHでサーバにログインし、下記のコマンドを実行するとモジュールの一覧が表示されるので、「rewrite_module (shared)」が表示されることを確認します。
# httpd -M Loaded Modules: (省略) rewrite_module (shared) (省略) Syntax OK
mod_rewriteが使用できない場合はApacheの設定ファイルhttpd.confを変更しなければいけません。
Apacheの設定ファイルhttpd.confを変更できない場合でmod_rewriteがインストールされている際には「Options FollowSymLinks」と.htaccessファイルの先頭に書き込めばmod_rewriteが使用できるようになります。
Options FollowSymLinks # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
mod_rewriteを使用できるようになったため、再度パーマリンクを設定したところ正常に画面が表示されました。
httpd.confでmod_rewriteが使用できるように設定されている場合は、「Options FollowSymLinks」の記述は必要ありません。
また、WebサーバのApacheにmod_rewriteがインストールされていることが前提です。
■ .htaccessを使用するには
Apache はデフォルトで、.htaccessの使用が禁止されているそうです。
使用できるようにするには、httpd.confで「AllowOverride All」に設定し、Apacheを再起動させると.htaccessが使用可能になります。