Puncte:0

Apache, redirecționare pentru un director mutat

drapel in

Pe serverul nostru web a fost „copiat” un director dintr-o locație în alta. Acum locația inițială a dispărut, dar primesc solicitări de a oferi o redirecționare către noua locație.

Cred că mod_rewrite ar fi cea mai bună modalitate de a face acest lucru, deși nu sunt mai presus de a folosi alte metode dacă sunt disponibile. Schema URL este așa.

Adresă URL veche: www.exampleurl.com/subdir1/olddirectory/subdir2
Adresă URL nouă: www.exampleurl.com/subdir1/newdirectory/subdir2

Subdir1 nu se va schimba niciodată, așa că acesta și porțiunea .com pot fi probabil ignorate. Cu toate acestea, directoarele subdir2 sunt adesea accesate direct și există multe opțiuni diferite.

Folosim deja mod_rewrite pentru a redirecționa tot traficul prin SSL/TLS, așa că continuarea cu asta ar funcționa cel mai bine.

Simt că lipsesc unele informații aici pe baza comentariilor și a răspunsului de până acum. Așadar, iată cum sunt configurate site-ul și directoarele în cauză, la un nivel super de bază. Sperăm că acest lucru vă va ajuta cu răspunsuri suplimentare.

Site-ul este răspândit între două configurații VirtualHost în două fișiere, unul pentru HTTP și unul pentru HTTPS. HTTP VirtualHost conține o condiție și o regulă mod_rewrite pentru ca tot traficul din acesta să fie redirecționat către portul HTTPS. Directoarele în cauză sunt configurate în fișiere separate în conf-enabled. Ambele includ o declarație Alias ​​și o zonă Director. Aliasul este necesar deoarece fișierele reale se află în directoarele /mnt pe măsură ce se montează NFS.

drapel kz
Unde mai exact folosești aceste directive? _Aparte:_ Dacă aceste directive sunt în configurația serverului, atunci probabil că _nu_ ar trebui să fiți „us[ing] mod_rewrite pentru a redirecționa tot traficul prin SSL/TLS”. YMMV.
Chris Woelkers avatar
drapel in
Pe măsură ce directorul original a dispărut, directivele vor fi plasate în configurația serverului.
Puncte:1
drapel kz

Folosind mod_rewrite, puteți face ceva de genul acesta:

RewriteRule ^/?(subdir1)/olddirectory(?:$|/)(.*) https://www.example.com/$1/newdirectory/$2 [R=301,L]

Cele de mai sus vor redirecționa după cum urmează:

  • /subdir1/olddirectory la /subdir1/newdirectory/
  • /subdir1/olddirectory/ la /subdir1/newdirectory/
  • /subdir1/olddirectory/<ceva> la /subdir1/newdirectory/<ceva>

Și redirecționează către HTTPS + numele de gazdă canonic, deci poate fi plasat inainte de redirecționarea canonică existentă pentru a minimiza numărul de redirecționări.

Testați mai întâi cu o redirecționare 302 (temporară) pentru a evita problemele de stocare în cache.

Chris Woelkers avatar
drapel in
Menționați plasarea redirecționării înaintea redirecționării canonice existente. Redirecționarea existentă se află în fișierul de configurare a gazdei virtuale http și există un alt fișier de configurare a gazdei virtuale pentru https. Noua redirecționare ar fi plasată în unul sau ambele? Sau poate în propriul fișier?

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.