WordPressのプラグインとしてはもはやスタンダードとも言える「Redirection」で、かなり手間取ってしまったので備忘録として記録します。
現象
WordPressのセットアップ中、「Redirection」の設定でエラーが発生。
「転送ルールを設定できません」とエラーメッセージが表示される。
また、「Redirection」で生成されるものと同じ内容(※)の.htaccessをWordpressインストールディレクトリ直下に手動で設定しても、設定内容が無視される。
※「Redirection」で生成される.htaccessの内容例
(WordPressインストールディレクトリへのアクセスをルートディレクトリへ転送)
# BEGIN WordPress RewriteEngine On RewriteBase /Wordpressインストールディレクトリ/ RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /Wordpressインストールディレクトリ/index.php [L] # END WordPress
現象が発生した環境は、さくらインターネットのビジネスプラン。
インストールしたバージョンは、それぞれ以下のとおり。
Wordpress : 3.9.1
Redirection : 2.3.4
.htaccessのパーミッションを書き込み可に設定しても、正常に書き込み処理が行われなくなっておりました。
また、以下の例のようなリダイレクト設定を手動で記述した場合は正しく反映されるので、.htaccess自体が無視される訳ではないようです。
Redirect /Wordpressインストールディレクトリ/index.php “http://www.example.co.jp/”
しかし、「Redirection」で生成される内容(※)は無視される……。
これらの謎現象に、大変悩みました。
「Redirection」のバージョンをダウングレードしたりなど試行錯誤してみた末、行き着いた結論は
「Redirection」の設定で「転送ルールを削除」を実行する
というもの。
どういう訳か、「Redirection」をWordPressプラグインディレクトリから直接インストールしたにも関わらず、「転送ルールを削除」を実行しないと転送ルールの設定が完了できなくなっていたようでした。
ツール > リディレクション で開いた画面上に、「設定」というリンクがあります。
「設定」をクリックすると、画面最下部に「転送ルールを削除」という項目があるので、「削除」ボタンをクリックします。
これで、通常のリダイレクト設定が可能になります。
原因は今のところ不明ですが、どうやらプラグインインストール時に含まれていたデフォルト設定(があるのかどうかもまだ不明ですが)が邪魔して転送ルールの書き込みが正常に行われなくなっていた模様です。
また、「転送ルールを削除」を実行した際、「Redirection」の設定画面が真っ白になってしまう現象が発生したケースもありましたが、その場合はパーマリンク設定を再設定することで正常に戻りました。
もし同様の現象にお悩みの場合は、ぜひお試しください……。