Folder awam Laravel mengembalikan ralat 404 (.htaccess)
P粉238433862
2023-07-28 18:04:13
<p>Saya mempunyai fail .htaccess. Melalui fail ini saya boleh mengesan bahasa mengikut subdomain. Tidak ada masalah dalam hal ini. Walau bagaimanapun, apabila saya mengubah hala permintaan masuk ke fail di bawah folder awam, saya mendapat ralat 404 dan bahasa tidak berfungsi dengan betul. </p>
<pre class="brush:php;toolbar:false;">SetEnv DEFAULT_LANG en
<IfModule mod_rewrite.c>
Pilihan +FollowSymLinks -Indeks
Tulis SemulaEnjinHidup
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>
Cuba gunakan yang berikut:
Menggunakan perkara di atas, pengesanan bahasa harus berfungsi dengan baik walaupun semasa mengubah hala ke fail di bawah folder awam. Pembolehubah %{ENV:LANGUAGE} akan kekal tidak berubah sepanjang penulisan semula, jadi parameter bahasa yang betul harus dihantar ke fail dalam folder awam.