Temporäre Weiterleitungen (302, 307) auf einer statischen Site, häufig aktualisiert

Temporäre Weiterleitungen (302, 307) auf einer statischen Site, häufig aktualisiert

Optionaler Hintergrund (um das XY-Problem zu vermeiden):Ich arbeite an einer statischen Site, die URLs wie enthalten wird www.example.com/książka/. Das Problem mit diesen URLs ist, dass die diakritischen Zeichen beim Teilen/Einfügen in ein IM-Programm usw. zu erweitert werden %<hex>und unlesbar werden: www.example.com/ksi%C4%85%C5%BCka/. Daher denke ich über Folgendes nach:

  • Festlegen der kanonischen URL der Seite als www.example.com/ksiazka/(„ąż“ ersetzt durch „az“)
  • Rückgabe einer temporären Umleitung (HTTP 302 oder 307) an www.example.com/książka/.

Was nicht funktioniert:

Automatische Adressumschreibung. Grund: Wir wechseln nicht von „ąż“ zu „az“, sondern von „az“ zu „ąż“ oder vielleicht zu „ąz“, oder „aż“, oder „áz“, oder zu einer von vielen anderen Möglichkeiten. Die Weiterleitungen müssen während der Seitengenerierung generiert werden, wenn wir die vollständige Liste der vorhandenen Seiten kennen und daher wissen, dass „ksiazka“ zu „książka“ und nicht zu „książką“ weiterleiten soll.

Ich muss 1 HTTP-Weiterleitung pro Seite konfigurieren. Ich brauche jedes Mal eine neue HTTP-Weiterleitung, wenn ich einen neuen Artikel hochlade.

Zum Bearbeiten der NGINX-Konfiguration ist Root-Zugriff erforderlich und ich stelle die Site mit den Berechtigungen eines normalen Benutzers bereit. Unter Apache könnten Sie einige Anweisungen hinzufügen .htaccess, aber das ist für die Leistung problematisch und für NGINX nicht möglich.

Abgesehen davon könnte ich einen Include erstellen, /etc/nginx/sites-available/mysiteum den Inhalt von einzubinden /home/myuser/mysite/_redirects. Der Server würde also eine Datei einlesen, die von einem normalen Benutzer kontrolliert wird. Der Nachteil besteht darin, dass der normale Benutzer dadurch Zugriff auf alle NGINX-Konfigurationsoptionen hätte, während ich nur Weiterleitungen einrichten müsste.

Um das zu umgehen, könnte ich vielleicht eine Automatisierung schreiben, die eine vom Benutzer hochgeladene Datei liest, die nur die für Weiterleitungen erforderlichen Informationen enthält. So etwas wie die _redirectsDatei in Netlify. Aber das fühlt sich… falsch an. Zu individuell.

Um es noch einmal zusammenzufassen:

  • Statische Site
  • HTTP 302 oder HTTP 307 erforderlich
  • Häufige Updates (manuelles Bearbeiten /etc/nginxnicht möglich)
  • Als nicht privilegierter Systembenutzer hochgeladene Dateien
  • Dem Benutzer nicht zu viel Macht über den Webserver geben

Was wäre eine gute Möglichkeit, dies auf NGINX zu tun?

verwandte Informationen