Fundal opțional (pentru a evita problema XY): Lucrez la un site static care va conține URL-uri precum www.example.com/ksiÄ Å¼ka/. Problema cu acele URL-uri este că atunci când le partajați / lipiți într-un program IM etc., caracterele diacritice sunt extinse în %<hex> și devin de necitit: www.example.com/ksi%C4%85%C5%BCka/. Așa că am în vedere următoarele:
- setarea URL-ului canonic al paginii ca
www.example.com/ksiazka/ ("Ä Å¼" înlocuit cu "az")
- returnarea unei redirecționări temporare (HTTP 302 sau 307) către
www.example.com/ksiÄ Å¼ka/.
Ce nu va funcționa:
Rescrierea automată a adresei. Motiv: nu trecem de la „Ä Å¼” la „az”, ci de la „az” la „Ä Å¼” sau poate „Ä z”, sau „aż”, sau „áz”, sau unul dintre multele alte posibilitati. Redirecționările trebuie să fie generate în timpul generării paginii, când cunoaștem lista completă a paginilor existente și astfel știm că „ksiazka” ar trebui să redirecționeze la „ksiÄ Å¼ka” și nu la „ksiÄ Å¼kÄ”.
Trebuie să configurez 1 redirecționare HTTP pe pagină. Voi avea nevoie de o nouă redirecționare HTTP de fiecare dată când încarc un articol nou.
Editarea configurației NGINX necesită acces root și implementez site-ul cu permisiunile unui utilizator obișnuit. Sub Apache puteți adăuga câteva directive în .htaccess, dar acest lucru este problematic pentru performanță și este o problemă pentru NGINX.
Cu excepția asta, aș putea crea o includere în /etc/nginx/sites-available/mysite a trage în conținut de /home/myuser/mysite/_redirects. Deci, serverul ar citi într-un fișier controlat de un utilizator obișnuit. Dezavantajul este că ar oferi utilizatorului obișnuit acces la toate opțiunile de configurare NGINX, în timp ce eu trebuie doar să configurez redirecționări.
Pentru a rezolva asta, aș putea scrie o piesă de automatizare care citește un fișier încărcat de utilizator, care conține doar informațiile necesare pentru redirecționări. Ceva de genul _redirecționări fișier în Netlify. Dar asta pare... greșit. Prea personalizat.
A recapitula:
- Site static
- Este necesar HTTP 302 sau HTTP 307
- Actualizări frecvente (editarea manuală a
/etc/nginx ne fezabil)
- Fișierele încărcate ca utilizator de sistem neprivilegiat
- Nu oferi utilizatorului prea multă putere asupra serverului web
Care ar fi o modalitate bună de a face acest lucru pe NGINX?