Nginx/Konfiguration/Rewriting: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
K Textersetzung - „wikitable“ durch „table table-striped table-hover“ |
||
| (2 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 | 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=" | {| class="table table-striped table-hover options big" | ||
! 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]] | |||
Aktuelle Version vom 29. Juli 2026, 10:58 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