# Alle Anfragen die mit /p/ beginnen
# Beispiel: /p/5e814704a28d9bc1914ff19fa0c4a00a/link
location /p/ {
    # Unser Secret ist jetzt "secret", in Produktion sollte dies ein langes
    # zufälliges Passwort sein, welches mit dem Webdienst geteilt wird.
    secure_link_secret "secret";

    # Falls die Prüfung nicht erfolgreich war, ist die Variable $secure_link leer.
    # In diesem Fall geben wir HTTP 403 (Forbidden) zurück.
    if ($secure_link = "") {
        return 403;
    }

    # Interne Weiterleitung auf den eigentlichen Inhalt.
    # Intern = User sieht diese Route nicht.
    rewrite ^ /secure/$secure_link;
}

# Alle Anfragen die mit /secure/ beginnen
location /secure/ {
    # Diese Route kann nur über interne Requests aufgerufen werden.
    # Dies verhindert primär, dass "clevere" User/Bots versuchen, URLs zu erraten.
    internal;

    # Dateien aus diesem Verzeichnis ausliefern.
    # Wir nutzen nicht die "root"-Direktive, da sonst nginx das /secure/
    # als Teil des Pfades im Dateisystem sieht.
    alias /home/cdn/data/secure-files/
}
