経緯
Laravelアプリをclone後にdockerで起動し、ローカル環境でTOP画面の表示には成功するが相対パスで他の画面を表示しようとした時にInternal Server Errorになっていました。
今回はその対応策の記事になります。
cloneしてきたプロジェクトの起動後にInternal Server Error
.htaccessを確認すると
以下のような記述になっていました。
RewriteEngine On
RewriteBase /プロジェクト名/
この場合はサーバ側の都合で
ホストドメイン/プロジェクトドメイン/
のようなURLの構成をベースにしたいという意図があることから来ています。
本来はこのようなことはREADMEに書いておくのが親切ですね。
RewriteBaseの記述を修正
下記に修正します。
RewriteEngine On
RewriteBase /
注意点
この修正はGitには反映せずローカル内でのみの修正にします。
これを反映してしまうと本来そのサーバでやりたかったリライトルールから外れてしまうためです。
.htaccess内でif文を組み込めるのでその方法で切り抜けても大丈夫かと思います。
RewriteEngine On
RewriteBase /
<If "req('Host') = 'サーバホストドメイン'">
RewriteBase /プロジェクト名/
</If>