htaccessのリダイレクトで403エラーが起きたときの対処法

WordPressなどのCMSではなく、純粋に静的ページから静的ページへリダイレクトをかけようとしたら、403エラーが起きました。今回はその対処法を載せておきます。

対処法

Options +FollowSymLinks

+FollowSymLinksを追加することで解決

これで終わりです。

リダイレクトって何?

リダイレクトは簡単に言えばページ転送です。例えばサイトリニューアルなどでページのURLが変わった場合、変わる前のURLにアクセスがあった時に変更後のURLへ転送できることです。主に301リダイレクトが活用され、書き方は下記の通りです。

#リダイレクト処理
RewriteEngine on
RewriteBase /
RewriteRule ^index.html$ http://www.logw.jp/top [R=301,L] #index.htmlにきたらhttp://www.logw.jp/topへ転送
RewriteRule ^hogehoge/index.html$ http://www.logw.jp/foo/bar.html [R=301,L] #hogehoge/index.htmlにきたらhttp://www.logw.jp/foo/bar.htmlへ転送

このように書いていきます。基本的に1行につき1リダイレクトです。

リダイレクトの書き方はあっているのに403エラーがでる

リダイレクト処理は上記のように書きます。この書き方があっているのに403エラーが出る場合は、対処法に書いてあるとおりに+FollowSymLinksを追加してあげてください。

403エラーって何?

403エラーとは何か?ざっくり言えばあなたはこのページを見るための権限がありません。という意味です。閲覧者と開発者or管理者で対処法が異なるエラーです

閲覧者

  • サイト制作側のミス
  • サイトが混雑している
  • アクセス拒否

などがあるらしいですが、基本的には制作側のミスが該当します。サイト混雑なら503エラーを出すのが一般的なのと、アクセス拒否の場合は403エラーを出すより貴方は許可されていません。アクセスは拒否されましたって出すのが一般的です。

開発者or管理者

  • パーミッションの設定が間違っている
  • 設置場所が間違っている
  • 書き方が間違っている

どっちが多いかと言われると困りますが、共用サーバーなら設置箇所が間違っているもしくは書き方がちょっと間違っているというのが多いです。.htaccessのリダイレクトは644のパーミッションで動くのが多いのでパーミッションの設定でエラーというのは考えにくいです。

今回の403はどれにも属さない

今回のエラーですが、正直な話どれにも属しません。設置場所もあっているし書き方もあっている。パーミションの設定もあっている。なのに403エラーがでるという不思議です。原因は+FollowSymLinksがないためでした。もし似たようなリダイレクトで困っている方がいたら試してください