rewiteRule不具合.txt

wordpressをドメイントップからサブディレクトリに移す事になったが .htaccess の RewriteRuleで不具合が起きた。

例えば、ドメイントップの/abcを/defにリダイレクトする時は、以下のように記述する。

RewriteRule ^abc$ /def [R=301,L]

これを/wpディレクトリ下に移動した場合は次のように修正すればよいと思っていた。

RewriteRule ^wp/abc$ /wp/def [R=301,L]

ところが、これでは正常に作動してくれなかった。/wp/abcがそのまま出てきてしまうのだ。

色々と調べて結果、次のような記述が正解だった。

RewriteRule ^abc$ /wp/def [R=301,L]

今まで、左辺の正規表現の文字列対象はドメイン直下だとばかり思っていたが、どうやらそうではなく、あくまで.htaccessのあるディレクトリが起点になるようだ。