Laravel公共資料夾回傳404錯誤(.htaccess)
P粉238433862
P粉238433862 2023-07-28 18:04:13
0
1
492
<p>我有一個 .htaccess 檔案。透過這個文件,我可以透過子網域來偵測語言。這方面沒有問題。然而,當我將傳入的請求重定向到 public 資料夾下的檔案時,我會得到一個 404 錯誤,語言也無法正常運作。 </p> <pre class="brush:php;toolbar:false;">SetEnv DEFAULT_LANG en <IfModule mod_rewrite.c> Options FollowSymLinks -Indexes RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{HTTP_HOST} ^([a-z]{2}).([a-z0-9-] .[a-z] )$ [NC] RewriteRule (.*) - [QSA,E=LANGUAGE:%1] RewriteCond %{ENV:LANGUAGE} ^$ RewriteRule (.*) - [QSA,E=LANGUAGE:en] RewriteCond %{QUERY_STRING} !language= RewriteRule ^(.*)$ $1?language=%{ENV:LANGUAGE} [QSA] RewriteCond %{REQUEST_URI} !^/public RewriteRule ^(.*)$ /public/$1 [L] </IfModule></pre> <p><br /></p>
P粉238433862
P粉238433862

全部回覆(1)
P粉604669414

嘗試使用以下內容:

SetEnv DEFAULT_LANG en

<IfModule mod_rewrite.c>
    Options +FollowSymLinks -Indexes

    RewriteEngine On

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{HTTP_HOST} ^([a-z]{2})\.([a-z0-9-]+\.[a-z]+)$ [NC]
    RewriteRule .* - [QSA,E=LANGUAGE:%1]

    RewriteCond %{ENV:LANGUAGE} ^$
    RewriteRule .* - [QSA,E=LANGUAGE:en]

    RewriteCond %{QUERY_STRING} !language=
    RewriteRule ^(.*)$ ?language=%{ENV:LANGUAGE} [QSA]

    RewriteCond %{REQUEST_URI} !^/public
    RewriteRule ^(.*)$ /public/?language=%{ENV:LANGUAGE} [L,QSA]

</IfModule>

使用上述內容,即使在重定向到public資料夾下的檔案時,語言偵測也應該能正常運作。 %{ENV:LANGUAGE}變數將在整個重寫過程中保持不變,因此應該將正確的語言參數傳遞給public資料夾中的檔案。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板