こんにちは、minoruです。
サブディレクトリにワードプレスを使用したサイトで、ある旧ページから新ページへ301リダイレクトを行おうとしたのですが、何度やっても上手く行きませんでした。
結論から言うと.htacccessの記述に1つ落とし穴がありました。
私がその時に使用していたサーバーはロリポップなのですが、ロリポップの仕様なのか、世の中のサーバー全般的な仕様なのかはまだ調べていません。
単刀直入に言うとリダイレクト元のURLの記述にスラッシュが1つ足りなかった。
Redirect 301 /wp/old.html https://hogehoge.hoge/wp/new.html
でも.htaccessには、すでにリダイレクトを行っているいくつかのページがスラッシュ無しで記述されていて、しかもそれでちゃんと転送されているのだが…
たったこれだけの事で随分と手こずってしまった。上手くいかない原因がわかると、逆に今まで誤った記述でなんで転送できてたのか、そっちが不思議でしょうがない。
後日追記:その理由はどうもワードプレスの基本機能なのか、使用しているテンプレートの機能なのかはわからないが、旧スラッグのアクセスを新スラッグに転送してくれる機能があったかららしい。原因ががわかってスッキリ。