Noi facem 301 redirecționări în moduri diferite, softodom - un blog despre programare, software, internet, și

În acest post voi vorbi despre toate aceste metode. Descrieți metode vor redirecționa 301 în aceeași ordine în care le-a adus mai sus.

301 redirecționare în .htaccess

Redirecteaza din directiva redirecționează sau mod_alias module RedirectPermanent

În acest caz, codul de stare nu este necesară, este deja ferm cu ciocanul pentru Directiva RedirectPermanent.

Redirect folosind directiva RedirectMatch

Redirect folosind directiva modulul RewriteRule mod_rewrite

Domeniul Forwarding cu www pe non-www

Este o metodă de versatil, care este întotdeauna activă și codul nu este necesară pentru a corecta pentru un anumit site, este foarte convenabil. Directiva + FollowSymLinks sili permite serverului să servească fișierele care sunt localizate fizic în afara directorul wwwroot, dar că există comenzi rapide / link-uri (link simbolic). Apoi, porniți RewriteEngine. Descrie condițiile pentru următoarea regulă, în acest caz, luați HTTP_HOST de interogare și a vedea dacă acesta are mai întâi prefixul www. în caz afirmativ, se aplică următoarele reguli descrise în directiva RewriteRule. și anume, toate cererile perenapravyayutsya același domeniu, dar fără prefixul www. R pavilion spune ispolzvat 301 redirecționării, și L se plânge de faptul că aceasta este ultima regula care urmează să fie executat. Formarea noua adresă URL pentru a redirecționa variabila directivei RewriteRule substituție% 1 ia numele de domeniu fara www de la linia RewriteCond. și anume tot ceea ce este inclus în paranteze, în cazul în care se introduce numele de gazdă din interiorul variabilei Apache server%. care, la rândul său, este luată de la solicitarea clientului, iar șirul GET variabila $ 1 parametrii de interogare din directivele RewriteRule sunt luate din aceeași linie, dar primul argument, în cazul în care descrie regulat parametrii de interogare expresie mai precis în variabila finală devine toate închise în paranteze expresie regulată primul argument.

Pe lângă există o alternativă, mai intuitiv, dar nu universal domeniu redirecționare domeniu sintaxă www fără www.

Apropo, eu sunt o astfel de sintaxă prost folosit pentru o lungă perioadă de timp pe site-urile lor, atunci când nu știi ce directiva RewriteRule folosind% 1 se poate obține în mod dinamic numele de gazdă, fără www din RewriteCond directiva anterioară. Din cauza acestui fapt, a trebuit să editați fișierul .htaccess pentru fiecare domeniu, este afacere foarte mohorâtă în cazul în care multe site-uri mai ușor de utilizat opțiune pe care i-am dat primul în acest exemplu, totul este universal.

Redirect cereri fără www domeniu cu prefixul www

Acum, să presupunem că situația inversă, este necesar să se perenpravlyat domeniu cu prefixul www. Pornind de la exemplul și descrierile de mai sus nu este greu de ghicit cum să o facă.

sau alternativ, opțiunea versatil:

Dacă numele de gazdă nu începe cu www apoi redirecționa către gazdă solicitat și se adaugă prefixul www cu punctul de pornire.

Redirect folosind script server-side (trimite antete HTTP)

Redirecționarea poate fi, de asemenea, realizată folosind server-side scripting, clientul trimiterea antetele de redirecționare necesare:

De fapt, tot ce trebuie să facem în skrpitov codul, acesta trimite un antet de date HTTP către client.

Trimiterea antet HTTP redirecționare în PHP

Pentru a trimite un antet în limbajul de programare PHP în biblioteca de bază are o caracteristică specială de același antet numele. Ca un singur parametru șir de caractere este nevoie de un antet care da ulterior clientului. Fiecare titlu este necesar să se specifice un un apel de funcție separată, deoarece le topravlyaet doar unul la un moment dat. Este important de a apela această funcție înainte de noapte a trimite date la client ca antetele HTTP sunt întotdeauna trimise la început înainte de corpul paginii.

Asta e tot primul 301 redirecționării implementat în PHP!

Trimiterea antet HTTP redirecționare în ASP

Practic, toate la fel.

Trimiterea antet HTTP de redirecționare pe ASP.NET

Aici, sintaxa este foarte similar cu ASP convenționale.