HOME > > > WordPressで「RewriteRule」のパスを固定する方法

WordPressで「RewriteRule」のパスを固定する方法

rewriteRule

RewriteRuleとは

ここでご紹介するRewriteRuleとはWordPressでhtaccessに書かれるパスの部分です。
WordPressのどこにindex.phpがあるのかをお知らせしてるパスですが、カテゴリーを追加したり、設定を変更したりするとhtaccessのRewriteRuleが上書きされてトップページが真っ白。変更する度にhtaccessを直さなきゃならない。なんてとても面倒です。
最初から「このパス!」と記述しておけば問題ないです。
WordPressをそのまま使用している場合は問題ないかもしれませんが、静的動的ページを入れ子にしたり、サイト内のブログだけWordPressで作ってるという方は設定を変更しましょう。

htaccessを開いて「RewriteRule」の場所を確認

まずはhtaccessを開いて、RewriteRuleの記述を確認します。
ここではsampleというフォルダ内にwordpressを設定していますので、本来この様なパスになるのが正解です。


RewriteRule . /sample/wordpress/index.php [L]

ですが、カテゴリーを追加したり、パーマリンク設定を変更したりすると・・・
上書きされこうなってしまいます。
これではパスが間違っています。


RewriteRule . /sample/index.php [L]

「rewrite.php」を変更する

wp-includes内の「rewrite.php」を開きます。
1700行目あたりに下記のような記述があります。


"RewriteRule . {$home_root}{$this->index} [L]\n";

ここにwordpressのフォルダ名を追加します。


"RewriteRule . {$home_root}wordpress/{$this->index} [L]\n";

上記例のパスで言うと
{$home_root}=sample/
{$this->index}=index.php
と考えてもらえると解りやすいかもしれません。

設定完了

ここに記述されたパスが上書きされますので、これからカテゴリーを追加したり設定を変更しても「wordpress」フォルダ名が記述されたパスが上書きされます。

このページを共有する

Facebook
twitter
Line
googleプラス
はてなブックマーク
Pocket

2014.03.09