Anpassungen in Nginx für Hugo

Anpassungen in Nginx für Hugo

Nachdem die Migration zu Hugo sehr erfolgreich verlaufen ist, wurden auch Einstellungen in der Nginx-Konfiguration notwendig.

Nicht mehr vorhandene Seiten

Nicht mehr vorhandene Seiten müssen Suchmaschinen mitgeteilt werden. Dadurch wissen die Suchmaschinen, dass die Seite nicht nur temporär nicht gefunden werden kann, sondern permanent entfernt wurde. Mit Nginx setze ich dazu mit einer Map eine Variable, welche in der nachfolgenden Nginx-Konfiguration abgefragt wird um den Code HTTP-Statuscode 410 (gone) zurückzusenden. In der Map sind alle nicht mehr verfügbaren Pfade eingetragen.

map $uri $gone {
	default 0;
	^/pfad-einer-nicht-mehr-vorhandenen-seite/ 1;
	^/pfad-noch-einer-nicht-mehr-vorhandenen-seite/ 1;
	...
}

Zu beachten ist, dass die Map außerhalb des Server-Contextes und innerhalb des HTTP-Contextes in Nginx stehen muss. Im jeweiligen Server-Block kann dann der Wert der Variablen $gone abgefragt werden.

if ($gone) {
	return 410;
}

Umschreiben von WordPress- auf Hugo-Pfade

WordPress verwendet für die RSS-Feeds den Pfad /feed/, Hugo verwendet dafür /index.xml. Mit Hilfe von Nginx und einer Rewrite-Regel wird Besuchern mitgeteilt, dass sich der Pfad permanent geändert hat.

rewrite ^/feed/$ /index.xml permanent;

Stichworte wurden bei mir in WordPress unter der URL /tag/ angelegt. Der von mir verwendete wordpress-to-hugo-exporter machte aus den Stichworten dann allerdings daraus eine Taxononomie /tags/, welche ebefalls umgeschrieben werden musste.

rewrite ^/tag/(.*) /tags/$1 permanent;

Einstellen der “Nicht gefunden”-Seite

Das von mir verwendete Hugo-Theme bringt eine eigene “Nicht gefunden”-Seite mit. Diese muss natürlich auch Nginx bekannt gegeben werden.

error_page 404 /404.html;

Sitemaps

Die Sitemaps habe ich nicht per Rewrite-Regel in Nginx umgeschrieben sondern direkt den neuen Pfad in den jeweiligen Verwaltungswebseiten der Suchmachinen eingetragen.

Entferntes

Zusätzlich konnte ich viel Konfiguration betreffend PHP oder dem von mir verwendeten WordPress-Cache-Plugin entfernen. Nun sieht nicht nur die Webseite sondern auch die Konfiguration aufgeräumter aus.


Siehe auch

Um Kommentare lesen oder verfassen zu können benötigen wir deine Zustimmung zum Speichern eines Cookies.