.htaccessでサブディレクトリ内のURLをリダイレクト

小ネタですが、

  1. サブディレクトリhoge/をルートディレクトリとするサイト(URLはhttps://example.com/hoge/のような形)
    • .htaccessの設置場所はhoge/直下
  2. .htaccessでサブディレクトリhttps://example.com/hoge/fuga下のURLを別のサブディレクトリ下のURLhttps://example.com/hoge/piyo/hogehoge.htmlへリダイレクト
  3. 404ページ設定も実施

というケースに遭遇して軽くハマったので備忘録代わりにメモしておきます。

RewriteEngine On
RewriteRule ^fuga(.*)$ /hoge/piyo/hogehoge.html [R=301,L]
ErrorDocument 404 /hoge/404.html

ハマったのはRewriteRuleのアクセス元はhttps://example.com/hoge/からの相対パスなのに対し、リダイレクト先は絶対パスでないと動かなかった、ということです。

中々サイトのルートディレクトリがサブディレクトリの場合の記述がなくて、動かずに悩んでいました。

参考

.htaccessの構文チェッカー

色々検索している中で、.htaccessの構文チェックをしてくれるページを見付けたのでメモしておきます。

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。