Der öffentliche Ordner von Laravel gibt den Fehler 404 zurück (.htaccess)
P粉238433862
2023-07-28 18:04:13
<p>Ich habe eine .htaccess-Datei. Durch diese Datei kann ich die Sprache anhand der Subdomain erkennen. Diesbezüglich gibt es kein Problem. Wenn ich jedoch die eingehende Anfrage an eine Datei im öffentlichen Ordner umleite, erhalte ich die Fehlermeldung 404 und die Sprache funktioniert nicht richtig. </p>
<pre class="brush:php;toolbar:false;">SetEnv DEFAULT_LANG de
<IfModule mod_rewrite.c>
Optionen +FollowSymLinks -Indexes
RewriteEngineOn
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} !sprache=
RewriteRule ^(.*)$ $1?sprache=%{ENV:LANGUAGE} [QSA]
RewriteCond %{REQUEST_URI} !^/public
RewriteRule ^(.*)$ /public/$1 [L]
</IfModule></pre>
<p><br /></p>
尝试使用以下内容:
使用上述内容,即使在重定向到public文件夹下的文件时,语言检测也应该能正常工作。%{ENV:LANGUAGE}变量将在整个重写过程中保持不变,因此应该将正确的语言参数传递给public文件夹中的文件。