suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Der öffentliche Ordner von Laravel gibt den Fehler 404 zurück (.htaccess)

<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>
P粉238433862P粉238433862487 Tage vor497

Antworte allen(1)Ich werde antworten

  • P粉604669414

    P粉6046694142023-07-29 13:29:04

    尝试使用以下内容:

    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?language=%{ENV:LANGUAGE} [L,QSA]
    
    </IfModule>

    使用上述内容,即使在重定向到public文件夹下的文件时,语言检测也应该能正常工作。%{ENV:LANGUAGE}变量将在整个重写过程中保持不变,因此应该将正确的语言参数传递给public文件夹中的文件。

    Antwort
    0
  • StornierenAntwort