*

WordPressのパーマリンク設定で403が出たときの対応

投稿日:2015/01/04 最終更新日:2015/01/04

WordPress を新規インストールして諸々の設定を行っていると、パーマリンク設定後サイトが403エラーになる現象が発生した。
リロードしたら管理画面も真っ白でお手上げだ。

勿論大して面倒な事はないんだけど、自宅サーバや VPS とあまり手が入れられないレンタルサーバでは対応も違いそうなのでメモしておく。

 

簡単に纏めると、VPSや自宅サーバの人は Options(SymLinksIfOwnerMatch) と AllowOverRide(FileInfo) ディレクティブを確認する。

レンタルサーバの人は .htaccess で FollowSymLinks を許可してやれば良いかな。

AllowOverRide ディレクティブで Options ディレクティブが許可されていなければどうしようもない。

具体的には各メニューを参考に。

 

エラーの原因と復旧

パーマリンクの変更を行うと、mod_rewrite を使う為に .htaccess が生成(あるいは修正)される。
(この時 .htaccess を WordPress が自動生成出きるかどうかは、WordPress がインストールされている所有者やグループ等に左右される)

mod_rewrite というのはApacheのモジュールの1つで、アクセスURLを正規表現で書き換えることが可能になる。
いわゆるリダイレクトを行うモジュールだ。

 

エラーの原因は .htaccess を作成した時に、何らかの理由で mod_rewrite を扱えていないからと考えられる。

FTPなり何なりで .htaccess を削除してやればとりあえずは復旧する。
もちろん削除する .htaccess がパーマリンク設定を行っている為、消したらパーマリンク設定は反映されない。

 

mod_rewrite が有効になっていない(サーバを触れる環境の場合)

mod_rewrite そのものが有効になっていない可能性がある。
Debian + Apache2系の場合、/etc/apache2/mods-enabled に rewrite.load のシンボリックリンクが存在するか確認する。

存在しない場合は有効にしてApacheを再起動する。

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

 

.htaccess が許可されていない(サーバを触れる環境の場合)

AllowOverRide ディレクティブで All もしくは FileInfo を選択していない場合、.htaccess で mod_rewrite が使えない。

設定時に WordPress を入れる予定が無かったら取り合えず None にしてしまう事が多いので気をつけよう。
(今関係ないけど、とりあえず全部ALLみたいなのは辞めよう)

Debian + Apache2系でAllowOverRide ディレクティブを修正する時は以下。
Apache の再起動も忘れずに。

sudo vi /etc/apache2/sites-available/設定ファイル名

AllowOverride FileInfo

 

Apache がシンボリックリンクのリンク先を辿れない(サーバを触れる環境の場合)

Options ディレクティブで FollowSymLinks もしくは SymLinksIfOwnerMatch が許可されていない場合に403になるようで、今回はこれで解決した。

FollowSymLinks と SymLinksIfOwnerMatch の違いは、前者は特に制限無く辿れるけど、後者はシンボリックリンク自体とリンク先が同じオーナーである場合のみしか許可されない。

今回は SymLinksIfOwnerMatch で良かったし、大体の場合そうだと思う。
FollowSymLinks でも全く構わないけど、少しでも制限が付いた方にしておいた。

Debian + Apache2系で Options ディレクティブを修正する時は以下。
Apache の再起動も忘れずに。

sudo vi /etc/apache2/sites-available/設定ファイル名

Options SymLinksIfOwnerMatch

 

Apache がシンボリックリンクのリンク先を辿れない(レンタルサーバ場合)

レンタルサーバの場合はサーバ側の設定を触れない為、.htaccess から FollowSymLinks もしくは SymLinksIfOwnerMatch を許可してやる必要がある。

この設定は、レンタルサーバの AllowOverRide ディレクティブで Options ディレクティブの使用が許可されていないと行えない。

設定は .htaccess の一番上に以下の1行を追加してやると良い。

Options +FollowSymLinks

 

サーバ関連オススメ本

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 1 follow us in feedly

関連記事

no image

【WordPress】WP Super Cacheで設定時に500エラーが出るときの対処法

WordPressのページキャッシュ用にWP Super Cacheと...

記事を読む

no image

WordPressでメニューが文字化けする

WordPressでメニューを編集した際、保存を押すと文字化けが起きた...

記事を読む

no image

WordPressのお引越し!丸ごと全部移行メモ

JCOM の障害のあおりを受け、このブログも2日ほど世界から消え去って...

記事を読む

no image

mono-labさんのCUBICテーマでどうしても気になった点

2015年2月18日 追記 xhtmlのアウトラインぶち壊しててワロ...

記事を読む

新着記事

no image

【WordPress】WP Super Cacheで設定時に500エラーが出るときの対処法

WordPressのページキャッシュ用にWP Super Cacheと...

記事を読む

【Debian】mysqlのスロークエリログを取得する手順

VPSにWordPressをインストールしていると、キャッシュプラグイ...

記事を読む

no image

MIFES10でUWSCの予約語・キーワードを明示する

最近エディタにはMIFES10を利用しているが、UWSCの利用頻度が上...

記事を読む

no image

WordPressでメニューが文字化けする

WordPressでメニューを編集した際、保存を押すと文字化けが起きた...

記事を読む

no image

WEBサイトキャプチャーツール「CrenaHtml2jpg」が便利

WEBサイトのキャプチャを作成したい事は多々ある。 これまでは He...

記事を読む

コメント/トラックバック

トラックバック用URL:

この投稿のコメント・トラックバックRSS




管理人にのみ公開されます

no image
【WordPress】WP Super Cacheで設定時に500エラーが出るときの対処法

WordPressのページキャッシュ用にWP Super Cacheと...

【Debian】mysqlのスロークエリログを取得する手順

VPSにWordPressをインストールしていると、キャッシュプラグイ...

no image
MIFES10でUWSCの予約語・キーワードを明示する

最近エディタにはMIFES10を利用しているが、UWSCの利用頻度が上...

no image
WordPressでメニューが文字化けする

WordPressでメニューを編集した際、保存を押すと文字化けが起きた...

no image
WEBサイトキャプチャーツール「CrenaHtml2jpg」が便利

WEBサイトのキャプチャを作成したい事は多々ある。 これまでは He...

→もっと見る

PAGE TOP ↑