Puncte:0

Redirecționări temporare (302, 307) pe un site static, actualizate frecvent

drapel mx

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?

sippybear avatar
drapel ve
Acest răspuns poate fi util: https://serverfault.com/a/656097/337307
vidarlo avatar
drapel ar
Normalizați URL-ul la ASCII și evitați seturile de caractere extinse care necesită codificare URL?
drapel mx
Este o opțiune, dar apoi am cuvinte scrise greșit (lipsesc semnele diacritice) în bara de adrese a browserului, iar bara de adrese este capabilă să le afișeze. Deci este o oportunitate ratată.
drapel mx
Hm, întrebarea despre redirecționările în masă pare promițătoare: https://stackoverflow.com/q/29354142

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.