Apache-2.4

如何在內部重寫所有對子目錄的請求?

  • April 16, 2018

我使用的是 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)。

開始/結束錨(^$)不是必需的,因為正則表達式預設是貪婪的。

引用自:https://serverfault.com/questions/907892