Zum Inhalt springen

Nginx/Konfiguration/Rewriting: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „ big"“ durch „"“
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
Um Rewriting zu aktivieren, fügt man folgendes in seine Konfiguration in einem `server { [...] }`-Block ein:
Um Rewriting zu aktivieren, fügt man folgendes in seine Konfiguration in einem `server { [...] }`-Block ein:
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
rewrite ^/artikel/(.*)$ /artikel.php?id=$1? last;
rewrite ^/artikel/(.*)$ /artikel.php?id=$1? last;
</syntaxhighlight>
</syntaxhighlight>


Zeile 13: Zeile 13:
:* Dieses Rewriting passiert mit der Flag `last` nur intern
:* Dieses Rewriting passiert mit der Flag `last` nur intern


{| class="wikitable options big"
{| class="table table-striped table-hover options"
! Flag !! Beschreibung
! Flag !! Beschreibung
|-
|-
Zeile 28: Zeile 28:
Weitere Hilfe, Tipps und Tricks findet man im [https://wiki.nginx.org/HttpRewriteModule nginx-Wiki]
Weitere Hilfe, Tipps und Tricks findet man im [https://wiki.nginx.org/HttpRewriteModule nginx-Wiki]


 
[[Kategorie:Nginx/Konfiguration]]
[[Kategorie:Nginx]]

Aktuelle Version vom 1. August 2026, 11:12 Uhr

Rewriting

nginx unterstützt URL-Rewriting nativ und kann mithilfe von Regex (Regulärer Ausdruck) Anfragen umschreiben

  • So kann etwa eine Domain `example.com/artikel.php?id=123` zu `example.com/artikel/123` vereinfacht werden, ohne dass der Nutzer weitergeleitet werden muss
  • Das Rewriting kann im Hintergrund auf Server-Ebene geschehen

Um Rewriting zu aktivieren, fügt man folgendes in seine Konfiguration in einem `server { [...] }`-Block ein:

rewrite ^/artikel/(.*)$ /artikel.php?id=$1? last;
Der reguläre Ausdruck `^/artikel/(.*)$` bedeutet folgendes
  • Existiert in der aufgerufenen Domain an irgendeiner Stelle die Zeichenfolge `/artikel/` wird sämtliches hinter dieser an `artikel.php` als GET-Parameter `id` übergeben
  • Dieses Rewriting passiert mit der Flag `last` nur intern
Flag Beschreibung
last/break Internes Rewriting ohne Weiterleitung
redirect Leitet den Nutzer auf die Seite weiter (HTTP 302 - Temporäre Weiterleitung)
permanent Leitet den Nutzer auf die Seite weiter (HTTP 301 - Dauerhafte Weiterleitung)
Warnung
Ohne eine gesetzte Flag gibt nginx den Fehler HTTP 500 zurück

Weitere Hilfe, Tipps und Tricks findet man im nginx-Wiki