2017-10-16 1 views
1

Ich habe One-Domain-Konfiguration bei meinem yii2 app-advanced-Projekt. Bevor die Konfiguration funktioniert, kann ich den Link zu keiner Bilddatei verwalten. Als ich versuchte, Datei von http://{domain}/icons/logo.svg Link heruntergeladen werden, habe ich Fehler 404:404 Nicht gefunden für Datei-Link bei Yii2 App-Advanced mit One-Domain-Konfiguration

Not Found 

The requested URL /icons/logo.svg was not found on this server. 

Aber http://{domain}/frontend/web/icons/logo.svg funktioniert. Datei existiert im angezeigten Ordner. Wie man Apache-Konfigurationsdateien am Projekt korrigiert, um kurze Links zu verwenden.

hier meine config:

  • Apache:

    <VirtualHost *:80> 
        ServerName test.dev 
    
        ServerAdmin [email protected] 
        DocumentRoot /home/user/Projects/test-app/ 
    
        <Directory /home/user/Projects/test-app/> 
         Require all granted 
         AllowOverride All 
        </Directory> 
    </VirtualHost> 
    
  • Basis .htacces:

    Options -Indexes 
    IndexIgnore */* 
    
    Options +SymLinksIfOwnerMatch 
    
    <IfModule mod_rewrite.c> 
    RewriteEngine on 
    
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ 
    RewriteRule ^(.*)$ http://%1/$1 [L,R=301] 
    
    RewriteRule ^admin(.{2,})?(/)?$ /backend/web/$1 [L,PT] 
    RewriteRule ^([^/].*)?$ /frontend/web/$1 
    </IfModule> 
    
  • Frontend .htacces:

    Options -Indexes 
    
    <IfModule mod_rewrite.c> 
    RewriteEngine on 
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . index.php 
    </IfModule> 
    
    DirectoryIndex index.php 
    
    • auch in der Konfigurationsdatei aktiviert frontend\config\main.php:
'components' => [ 
    'request' => [ 
     'csrfParam' => '_csrf-frontend', 
     'baseUrl' => '', 
    ], 
    'urlManager' => [ 
     'enablePrettyUrl' => true, 
     'showScriptName' => false, 
     'rules' => [ 
      '' => 'site/index', 
      'sitemap' => 'sitemap/index', 
     ], 
    ], 

Antwort

1

ich das Problem gefunden. Apache haben eigene Verzeichnis icons für eigene Symbole. Und dieses Alias ​​kann nur auf Server-Konfiguration auf /etc/apache2/mods-available/alias.conf

Ausgabe hier beschrieben überschrieben: https://www.electrictoolbox.com/apache-icons-directory/

Also, wenn Sie Symbole Ordnernamen verwenden möchten, sollten Sie es bei subdirecotory setzen, zum Beispiel img/icons/.... Oder verwenden Sie einen anderen Verzeichnisnamen.

0

diese Zeile in der .htaccess-Datei hinzufügen:

RewriteRule ^icons/(.*)$ frontend/web/icons/$1 [L] 
+0

Sardor Dushamov, Ihre Variante funktioniert auch nicht. Neben, auf Frage beschrieben Konfiguration funktioniert gut in anderen yii2 Projekte auf meinem PC. Vielleicht ist ein Fehler allgemeiner? – Oleg