プルリクエストを送ったが、ここでも同じ理由でさまよっている人向けに備忘録として残しておく
(…Qiitaに備忘録って正直どうなんだろう)
https://github.com/slimphp/Slim-Website/pull/323
何が起きたか
Slim3を使ってWebアプリを作っていたのだが、ある程度作って来たタイミングでさくらレンタルサーバーにアップロードをしてみた。
すると、500番エラーが表示されてindex.php以外が全く見れない(slim3の処理範囲外のページは見れた)
てことで、ログを見る
※さくらレンタルサーバーの場合はサーバーコントロールパネルのアクセスログの設定メニューからエラーログが見れます
[Fri Nov 09 13:17:39.191931 2018] [core:error] [pid 61852] [client 000.000.000.000:0] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: ○○○○○○
[Fri Nov 09 13:17:39.271332 2018] [core:error] [pid 61853] [client 000.000.000.000:0] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: ○○○○○○
リダイレクトループ…?.htaccess
の仕業だなとなんとなく予想を付けた
修正内容
.htaccess
を以下のように修正した
公式ドキュメントの.htaccess
はこう
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
これに1行追加
RewriteEngine On
# 以下1行を追加
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
リダイレクトのベースディレクトリを指定して無事表示されるようになりました、やったぜ。
後書き
このWebアプリはいろんな環境(DockerとかXAMPPとかラズパイとか)で開発してて問題なく動いてるからレンタルサーバーでも動くっしょっと勘ぐってたら動かなくて焦った。
さて、この記事が誰かの役に立つ日は来るのだろうか……