Apache-2.4
如何在內部重寫所有對子目錄的請求?
我使用的是 Laravel 5.6,我只能將文件上傳/編輯到網站的根目錄(
/public_html
)。我無法將網站根目錄更改為/public_html/public
. 是否可以在內部將所有請求(例如/
,/login
等/css/styles.css
)重寫為/public_html/public/
?我不知道如何編寫 .htaccess 文件。我嘗試了很多我在網上找到的不同的東西。我嘗試的最後一件事是
/public_html/.htaccess
:RewriteEngine On RewriteRule ^(.*)$ /public/$1 [L]
RewriteRule ^(.*)$ /public/$1 [L]
您只需要一個額外的條件來防止重寫循環。例如:
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule (.*) /public/$1 [L]
初始
REDIRECT_STATUS
請求時環境變數為空,第一次成功重寫後設置為 200(OK)。開始/結束錨(
^
和$
)不是必需的,因為正則表達式預設是貪婪的。