Puncte:0

Nginx configurează rescrierea locației pentru toate subfolderele

drapel cn

Această întrebare urmează în multe feluri de la a precedentul Întrebam – și am ajuns să îmi răspund. Un scurt rezumat al problemei pe care o descriu acolo și soluția mea la aceasta

  • Trebuie să efectuez diferite acțiuni implicite atunci când există o încercare de a accesa fișierele dintr-un subdosar, în funcție de cine încearcă accesul

aa

  1. O aplicație web „back-office”, caz în care fișierul este livrat dacă există sau un „stub” este generat și ecou înapoi dacă nu există
  2. Ca răspuns la solicitările de la o aplicație de telefon, OTH, vreau să livrez fișierul, dacă există, sau un HTTP 404 dacă nu există

Soluția pe care am găsit-o este următoarea

  • Creați un link simbolic către folderul în cauză ln -s /cale/la/folder /cale/la/bo_folder unde prefixul bo_ pe link-ul simbolic înseamnă back-office
  • Când preluați fișiere din aplicație, încercați să ajungeți direct la ele ca /cale/la/folder/file.name.extn caz în care Nginx se va ocupa de trimiterea înapoi a unui 404 sau a fișierului, după cum consideră corect
  • Când preluați fișiere pentru editare în suita backoffice, accesați-le ca /cale/la/bo_folder/file.name.extn

Următorul bloc de configurare Nginx

locație /cale/la/bo_folder
{
 add_header Acces-Control-Permite-Origine *;
 rescrie ^(.*)$ /path/to/folder/index.php?$1 ultimul;
}

Problema la care încerc acum să găsesc o soluție mai grațioasă este aceasta - nu am doar un astfel de folder, ci mai degrabă o întreagă secvență a acestora /cale/la/folder_1, /path/to/folder_2... /path/to/folder_n

În timp ce pot pune înăuntru Locație blocuri pentru fiecare astfel de folder este posibil, este plictisitor și predispus la erori. Există aproape sigur o modalitate de a scrie rescrierea mai generic cu un folder mai sus, adică în /cale/spre mai degrabă decât pentru fiecare subdosar individual.

Există o complicație minoră aici - nu mă pot descurca prin rescrierea în a /cale/la/index.php folder, deoarece conținutul stub pe care trebuie să-l trimit înapoi este destul de diferit, în funcție de subfolderul în care ar trebui să fie acel conținut.

Cunoștințele mele destul de incomplete despre configurația Nginx mă lasă aici. Cum se poate face acest lucru?

djdomi avatar
drapel za
de ce nu folosiți doar subdomenii?
drapel cn
Ai putea detalia? Nu sunt sigur că înțeleg ce vrei să spui
djdomi avatar
drapel za
întrebarea mea este, trebuie să fie o cale specifică sau poate fi înlocuită cu subdomenii?
drapel cn
Ah, da - înțeleg ce vrei să spui acum. Un subdomeniu s-ar descurca la fel de bine, de ex. backoffice.example.com. Ar trebui să obțin un nou certificat Let's Ecrypt pentru asta, dar este în regulă. Cu toate acestea, încă nu îmi este clar cum ar trebui să scriu blocurile de configurare nginx, așa că încercările de a obține fișiere din, de exemplu, `backoffice.example.com/folder/subfolder` sunt redirecționate către `backoffice.example.com/folder/subfolder /index.php` **FĂRĂ** să scrie blocuri de configurare separate pentru fiecare folder.
djdomi avatar
drapel za
Ei bine, vă rugăm să actualizați întrebarea dvs., este încă nespecifică - poate cu un exemplu exact - și rețineți, nu scrieți niciodată aici astfel de informații actualizați întrebarea editând-o

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.