Le dossier public Laravel renvoie une erreur 404 (.htaccess)
P粉238433862
2023-07-28 18:04:13
<p>J'ai un fichier .htaccess. Grâce à ce fichier, je peux détecter la langue par sous-domaine. Il n'y a aucun problème à cet égard. Cependant, lorsque je redirige la requête entrante vers un fichier du dossier public, j'obtiens une erreur 404 et la langue ne fonctionne pas correctement. </p>
<pre class="brush:php;toolbar:false;">SetEnv DEFAULT_LANG fr
<IfModule mod_rewrite.c>
Options + FollowSymLinks - Index
Réécriture du moteur activé
RewriteCond %{HTTP:Autorisation} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Autorisation}]
RewriteCond %{HTTP_HOST} ^([a-z]{2}).([a-z0-9-]+.[a-z]+)$ [NC]
RéécrireRule (.*) - [QSA,E=LANGUE :%1]
RéécritureCond %{ENV:LANGUAGE} ^$
RewriteRule (.*) - [QSA,E=LANGUAGE:en]
RéécritureCond %{QUERY_STRING} !langue=
RewriteRule ^(.*)$ $1?langue=%{ENV:LANGUAGE} [QSA]
RéécritureCond %{REQUEST_URI} !^/public
RéécrireRule ^(.*)$ /public/$1 [L]
</IfModule></pre>
<p><br /></p>
Essayez d'utiliser ce qui suit :
En utilisant ce qui précède, la détection de langue devrait fonctionner correctement même lors de la redirection vers des fichiers sous le dossier public. La variable %{ENV:LANGUAGE} restera inchangée tout au long de la réécriture, les paramètres de langue corrects doivent donc être transmis au fichier dans le dossier public.