私はこれを持っています
RewriteRule ^(.*) public/$1 [NC,L]
私の .htacces ファイルで、Internal Server Error 500 が表示されます。
そして、なぜそれが得られるのかを説明してください。
私はこれを持っています
RewriteRule ^(.*) public/$1 [NC,L]
私の .htacces ファイルで、Internal Server Error 500 が表示されます。
そして、なぜそれが得られるのかを説明してください。
Apache がある時点で中断しなければならない無限の書き換えループを作成するような方法でルールを作成したため、500 内部サーバー エラーが発生しました。エラー ログを確認すると、正確なエラー メッセージが表示されます。
この[L]
フラグは必ずしも「書き換えが完了した」という意味ではありません。単に「この繰り返しで書き換えが完了しました。最初からやり直す」という意味です。
読むと非常に便利: RewriteRule Last [L] フラグが機能しない?
問題を解決するには、条件を追加して、既に書き換えられたルールが何度も書き換えられないようにする必要があります。これらのルールは、あなたのために仕事をするはずです (考えられる解決策の 1 つです。すべては、実際のプロジェクトの設定方法によって異なります)。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
/public/
このルールを使用すると、URL が既に書き換えられているか、すぐに始まる場合、追加の書き換えは発生しません。