web-dev-qa-db-ja.com

すべてのリクエストをサブディレクトリに内部的に書き換えるにはどうすればよいですか?

Laravel 5.6を使用しており、ファイルをWebサイトのルート(/public_html)にのみアップロード/編集できます。Webサイトのルートを/public_html/publicに変更できません。書き換えることはできますか? all内部的に/へのリクエスト(例:/login/css/styles.css/public_html/public/など)?

.htaccessファイルの書き方がわかりません。オンラインで見つけたさまざまなことを試しました。私が最後に試したのは/public_html/.htaccessでこれでした:

RewriteEngine On

RewriteRule ^(.*)$ /public/$1 [L]
1
Toothbrush
RewriteRule ^(.*)$ /public/$1 [L]

書き換えループを防ぐには、追加の条件が必要です。例えば:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) /public/$1 [L]

REDIRECT_STATUS環境変数は、最初の要求では空であり、最初の正常な書き換え後に200(OK)に設定されます。

開始/終了アンカー(^および$)正規表現はデフォルトで貪欲なので、必須ではありません。

1
MrWhite