Domainbasierte robots.txt
Sofern Sie in Ihrem Shopware Shop mehrere Sales-Channels besitzen, können Sie für die unterschiedlichen Domains, die verwendet werden, eigene Robots-Anweisungen definieren.
Voraussetzungen
- Shopware Installation
- mehrere Domains / Verkaufskanäle
Verzeichnisstruktur anpassen
Zu Beginn muss im public
Verzeichnis von Shopware ein weiteres Verzeichnis namens robots
erstellt werden. Innerhalb des robots
Verzeichnis müssen dann die jeweiligen robots.txt
Dateien mit der folgenden Namenskonvention erzeugt werden, bspw.: domain.tld.txt
oder sub.domain.tld.txt
.
Beispiel
Ein Beispiel zwei verschiedener robots.txt in einer Shopware Installation:
public/robots/beispiel.de.txt
public/robots/shop.beispiel.de.txt
Terminal
mkdir -p /var/www/vhosts/<plesk-domain-name>/httpdocs/public/robots
touch /var/www/vhosts/<plesk-domain-name>/httpdocs/public/robots/shop.beispiel.de.txt
touch /var/www/vhosts/<plesk-domain-name>/httpdocs/public/robots/beispiel.de.txt
In den Dateien shop.beispiel.de.txt
und beispiel.com.txt
können Sie nun die für die jeweilige Domain relevanten Robots-Anweisungen hinterlegen.
Plesk Control Panel
Navigieren Sie in den Datei-Browser des entsprechenden Abonnements.
Anschließend muss das Verzeichnis robots
im public
Verzeichnis erstellt werden.
Bestätigen Sie mit der Schaltfläche „OK" und wechseln Sie anschließend in das zuvor erstellte Verzeichnis.
Erstellen Sie in dem robots
Verzeichnis für jede Domain, für die Sie eigene Robots-Anweisungen definieren wollen, eine Datei mit der folgenden Namenskonvention, bspw.: domain.tld.txt
oder sub.domain.tld.txt
Bestätigen Sie den Dateinamen mit der Schaltfläche „OK" und wählen Sie anschließend die Datei im Datei-Browser aus, tragen in dem sich öffnenden Editor-Fenster die gewünschten Robots-Anweisungen ein und speichern die Änderung über die blau hinterlegte Schaltfläche Speichern.
Da in dem Beispiel für jeweils zwei Domains Anweisungen definiert werden sollen, muss ebenfalls die folgende Datei erstellt und mit Robots-Anweisungen gefüllt werden: beispiel.de.txt
Sie können die ursprünglich einzelne robots.txt
entfernen, da diese nicht mehr verwendet wird. Beachten Sie, dass dessen Datei-Inhalt jedoch für eine der dedizierten robots.txt
relevant sein könnte.
Apache2 Rewrite-Regel hinterlegen
Bei Plesk wird im Standard der Webserver Apache2 für die Auslieferung der Webseiten des jeweiligen Abonnements verwendet, weswegen hier ausschließlich eine Anpassung der .htaccess
erforderlich ist.
Fügen Sie folgendes am Anfang der .htaccess
Datei ein:
RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [NS]
Die .htaccess
Datei befindet sich ebenfalls im public
Verzeichnis der Shopware Installation.
Plesk NGINX Rewrite-Regel hinterlegen
Sofern Sie den NGINX-Proxymodus deaktiviert haben, muss die Rewrite-Regel in den zusätzliche nginx-Anweisungen hinterlegt werden. Navigieren Sie hierzu in die Hosting und DNS Einstellungen Ihres Abonnements und öffnen Sie die Apache und nginx Einstellungen.
Fügen Sie dort die folgende nginx-Anweisung zu und speichern Sie die Änderung mit einem Klick auf die blaut hinterlegte Schaltfläche OK.
\nZusätzliche nginx-Anweisungen:
# multi domain robots.txt
rewrite ^/robots\.txt$ /robots/$host.txt;
Standalone NGINX Rewrite-Regel hinterlegen
Wir NGINX alleine betrieben, muss die Rewrite-Regel in dem entsprechenden Server-Block hinzugefügt werden. Je nachdem wie Sie NGINX konfiguriert haben, finden Sie die entsprechende Konfigurationsdatei unter /etc/nginx/conf.d
oder in /etc/nginx/sites-available
.
Für Änderungen im Verzeichnis /etc
wird grundsätzlich der root
Benutzer benötigt.
\nBeispiel:
server {
listen 80;
listen [::]:80;
server_name domain.tld;
root /var/www/domain.tld/public;
# mutli domain robots.txt
+ rewrite ^/robots\.txt$ /robots/$host.txt
index index.html index.htm;
}
Anschließend muss die Nginx-Konfiguration mit folgendem Befehl neu geladen werden:
systemctl reload nginx
Im Vergleich zu dem Befehl systemctl restart nginx
sorgt der reload
Befehl ausschließlich für das Neuladen der Konfigurationsdatei, sodass hierbei keine Verbindungen hart abgebrochen werden.