Wie maskiert man den Pfad eines geschützten Ordners, damit es aussieht, als würde er von einem anderen Standort aus bereitgestellt?

Wie maskiert man den Pfad eines geschützten Ordners, damit es aussieht, als würde er von einem anderen Standort aus bereitgestellt?

Ich verwende X-Accel, um geschützte Ordner bereitzustellen, die Bilder enthalten:https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/

Derzeit speichere ich die Dateien im /protected_filesOrdner. Um die Dateien jetzt mit X-Accel anzuzeigen, übergebe ich den Pfad mit der /protected_filesURL, z. B. protected_files/image1.jpg.

So stelle ich den Schutz für den geschützten Ordner ein:

location /protected_files {
  internal;
}

Um die Dateien dann mit X-Accel anzuzeigen, übergebe ich den Pfad mit der X-Accel-Redirect.

Gibt es eine Möglichkeit, die URL zu maskieren, sodass es aussieht, als würde sie von einer anderen URL bereitgestellt? etwa /fake_folder/image1.jpg?

Was ich versucht habe und was nicht funktioniert hat, war, einen weiteren Ordner mit dem gewünschten falschen Namen zu erstellen und dann dem echten Namen einen Alias ​​hinzuzufügen:

location /fake_folder {
  internal;
  alias /protected_files;
}

Dann übergebe ich die URL mit /fake_folder/image1.jpg, aber ich bekomme den Fehler 404

Antwort1

EntsprechendDokumentationbei internen, umgeschriebenen Anfragen gelten diese als interne Anfragen. Folgendes sollte funktionieren:

location /fake_folder {
    rewrite ^/fake_folder/(.*)$ /protected_files/$1 break;
}

verwandte Informationen