Routing durcheinander, Hilfe bei der htaccess gesucht

 

UPDATE: Der Shop bzw. das Frontend funktioniert weiterhin nicht mit dem Zusatz “www” in der Domain. Alles andere ist sowohl mit und ohne www zugänglich.

 

Hallo Leute,

ich habe Shopware 6 installiert und habe nun ein kleines Problem mit der Erreichbarkeit. Folgendes:

ohne "www"

Frontend: https://meinedomain.de

Frontend: https://meinedomain.de/public

Backend: https://meinedomain.de/admin

 

mit "www"

Frontend: https://www.meinedomain.de

Frontend: https://www.meinedomain.de/public

Backend: https://www.meinedomain.de/admin

 

 

Das Backend funktioniert in allen Varianten aber das Frontend leider nur mit einer Schreibweise. Ich habe über Plesk (Obsidian 18.0.28 Update Nr. 3) auch schon bei den Hostingeinstellungen “httpdocs/public” gesetzt aber auch schon diverse andere Varianten ausprobiert.

 

In meiner htaccess in Basisverzeichnis/httpdocs/public konnte ich nichts mit “#RewriteBase /Shopware” finden was ich hätte abändern können.

Hier meine htaccess:

 

DirectoryIndex index.php



Options -MultiViews



RewriteEngine On

    RewriteCond %{REQUEST_URI}::1 ^(/.+)/(.\*)::\2
    RewriteRule ^(.*) - [E=BASE:%1]

    # Sets the HTTP_AUTHORIZATION header removed by Apache
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^     RewriteRule ^index\.php(?:/(.\*)|) %{ENV:BASE}/$1 [R=301,L]

    # If the requested filename exists, simply serve it.
    # We only want to let Apache serve files and not directories.
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    # Rewrite all other queries to the front controller.
    RewriteRule ^ %{ENV:BASE}/index.php [L]





RedirectMatch 302 ^/$ /index.php/







Header set Content-Security-Policy “script-src ‘none’”



 

Gleiches gilt für die htaccess Datein in /update und /install:

/ httpdocs / public / recovery / install / .htaccess:

 



RewriteEngine On

    RewriteRule .* - [E=MOD_REWRITE:1]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]

    # Set REQUEST_SCHEME (standard environment variable in Apache 2.4)
    RewriteCond %{HTTPS} off
    RewriteRule .* - [E=REQUEST_SCHEME:http]

    RewriteCond %{HTTPS} on
    RewriteRule .* - [E=REQUEST_SCHEME:https]

DirectoryIndex index.php

/ httpdocs / public / recovery / update / .htaccess:

 



RewriteEngine On

RewriteRule .* - [E=MOD_REWRITE:1]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php [QSA,L]

DirectoryIndex index.php

 

Es wäre klasse, wenn das Frontent mit und auch ohne “www” und auch ohne /public erreichbar wäre.

Shopware ist aktualisiert (Version: 6.2.3)

Hier noch die Fehler der Log Datei:httpdocs / var / log / prod-2020-07-21.log  (Die Duplikate habe ich entfernt)

 

[2020-07-21 11:46:21] php.CRITICAL: Uncaught Error: Call to a member function getSource() on null {“exception”:"[object] (Error(code: 0): Call to a member function getSource() on null at /var/www/vhosts/meinedomain.de/httpdocs/vendor/shopware/core/Framework/Routing/ApiRouteScope.php:25)"}
[2020-07-21 11:46:21] request.CRITICAL: Uncaught PHP Exception Error: “Call to a member function getSource() on null” at /var/www/vhosts/meinedomain.de/httpdocs/vendor/shopware/core/Framework/Routing/ApiRouteScope.php line 25 {“exception”:"[object] (Error(code: 0): Call to a member function getSource() on null at /var/www/vhosts/meinedomain.de/httpdocs/vendor/shopware/core/Framework/Routing/ApiRouteScope.php:25)"}
[2020-07-21 11:48:38] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: “No route found for “GET /recovery/common/assets/styles/icons.css” (from “https://meinedomain.de/")" at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/http-kernel/EventListener/RouterListener.php line 136 {“exception”:”[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for “GET /recovery/common/assets/styles/icons.css” (from “https://meinedomain.de/”) at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/http-kernel/EventListener/RouterListener.php:136, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): No routes found for “/recovery/common/assets/styles/icons.css/”. at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:70)”}
[2020-07-21 13:31:19] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: “No route found for “GET /recovery/common/assets/images/sw-logo-blue.svg” (from “https://meinedomain.de/")" at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/http-kernel/EventListener/RouterListener.php line 136 {“exception”:”[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for “GET /recovery/common/assets/images/sw-logo-blue.svg” (from “https://meinedomain.de/”) at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/http-kernel/EventListener/RouterListener.php:136, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): No routes found for “/recovery/common/assets/images/sw-logo-blue.svg/”. at /var/www/vhosts/meinedomain.de/httpdocs/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:70)”}
[2020-07-21 13:38:51] php.CRITICAL: Fatal Compile Error: require(): Failed opening required ‘/var/www/vhosts/meinedomain.de/httpdocs/var/cache/prod_h2af4ecfeeae2de07197c20ad562393d3/Container62kVSj8/removed-ids.php’ (include_path=’.:/opt/plesk/php/7.4/share/pear’) {“exception”:"[object] (Symfony\Component\ErrorHandler\Error\FatalError(code: 0): Compile Error: require(): Failed opening required ‘/var/www/vhosts/meinedomain.de/httpdocs/var/cache/prod_h2af4ecfeeae2de07197c20ad562393d3/Container62kVSj8/removed-ids.php’ (include_path=’.:/opt/plesk/php/7.4/share/pear’) at /var/www/vhosts/meinedomain.de/httpdocs/var/cache/prod_h2af4ecfeeae2de07197c20ad562393d3/Container62kVSj8/srcShopware_Production_KernelProdContainer.php:1365)"}

 

Ich bin leider komplett in diesem Thema und kenn mich gar nicht mit solchen Sachen aus aber versuche mir durch Shopware soviel wie möglich selbst beizubringen. Ich bin über jede Hilfe dankbar! :slight_smile:

 

 

 

Hallo,

offenbar verwendest Du Plesk als Admin-Panel.

Du musst die Shopware Daten in Dein /httpdocs Verzeichnis kopieren - unter „Hosting Einstellungen“ legst Du als Einstiegspunkt für Deine Domain /httpdocs/public fest und bei bevorzugte Domain-Schreibweise muss KEINE stehen.

An der .htaccess sind keine Änderungen erforderlich.

Viele Grüße

Hi,

Danke für deine Antwort! 

ja ich nutze Plesk als CPanel, wurde mir als totaler Anfänger was Serververwaltung angeht empfohlen. Ich hatte vorher die Installation in einem Unterordner in /httpdocs. Der vorherige Pfad war /httpdocs/shopware und dort waren die Datein aber das hatte auch nicht funktioniert. Im Forum stand, dass die Datein zwingend im Hauptordner liegen müssen. Kann ich die Datein ganz einfach in /httpdocs verschieben oder muss ich Shopware neu installieren?

 

Hallo,

nein Du kannst auch als Einstiegspunkt unter „Hosting Einstellungen“ dann entsprechend /httpdocs/shopware/public eintragen. Wichtig ist nur, dass die Shopware Dateien inkl. dem public Verzeichnis in dem entsprechenden Zielverzeichnis (also dem Einstiegspunkt) liegen und keine bevorzugte Domain-Schreibweise unter Hosting-Einstellungen eingetragen ist.

Viele Grüße

Moin Scoopex,

ich habe jetzt noch einmal alles geprüft. Die ganzen Datein liegen in httpdocs und das Zielverzeichnis bei Plesk ist /httpdocs/public

Es hat sich aber nichts geändert. Irgendwo muss ja noch ein Fehler sein :frowning:

Hallo,

in welchem Verzeichnis liegen denn Deine Shopware Daten ? Liegt public im /httpdocs Verzeichnis oder wie Du geschrieben hast, unter /httpdocs/shopware/ ?

Falls in letzterem, musst Du den Einstiegspunkt auf /httpdocs/shopware/public setzen.

Viele Grüße

Moin Scoopex,

alle Daten sind im /httpdocs Ordner. ich hatte die Installation früher in einem Unterverzeichnis nun aber nicht mehr.

Ich habe nun eine Neuinstallation gemacht, alles geupdatet und jetzt ist ein Fehler auch weg.

Ich erreiche den Shop/Frontend nun unter https://meinedomain.de aber nicht mit https:// www. meinedomain.de

Das Backend ist sowohl mit als auch ohne www zu erreichen.

Ich muss den Shop also nur noch mit „www“ hinbekommen.

Viele Grüße

wieso willst du die Seite sowohl unter www.domain.de und domain.de betreiben ?

Das macht alles nur unnötig kompliziert. Erstelle einfach eine entsprechende Rewrite Rule die www.domain.de auf domain.de umbiegt. Direkt in der Konfiguration vom Webserver.

Beispiel für nginx :

 

if ($host = www.meinesexydomain.de) {
rewrite ^ https://meinesexydomain.de$request_uri? permanent;
}
 

 

Hallo,

ist unter „Hosting Einstellungen“ die bevorzugte Domainschreibweise auf KEINE gesetzt ? Auch darauf achten, dass die automatische Umleitung auf SSL dort deaktiviert ist - die Steuerung übernimmt Shopware.

Viele Grüße

Ja, bei den Hostingeinstellungen habe ich die Bevorzugte Domain auf “keine”

Automatische Weiterleitung auf SSL unter Hosting-Einstellungen auch deaktiviert?

Einen www. Alias für Deine Domain hast Du aber, den Du auch anpingen kannst ?

Viele Grüße