Htaccess preusmjeravanje i njegove postavke

.htaccess datoteke mogu biti u korijenskom direktoriju web-mjesta (npr. /Home /user /sitename /) ili njegovim pod direktorijima. Koriste se za organiziranje preusmjeravanja posjetitelja s jedne domene ili dokumenta na vaš web poslužitelj na drugu. Svaka .htaccess datoteka sadrži skup pravila (direktiva) prema kojima web-poslužitelj preusmjerava korisnika na jednu ili drugu stranicu. Mnogi sustavi za upravljanje sadržajem koriste postavke .htaccess preusmjeravanja. Možete urediti datoteke koje je kreirao vaš CMS unosom novih smjernica za preusmjeravanje ili ručno stvoriti vlastite .htaccess datoteke.


Stvaranje .htaccess datoteke

Prvi korak u konfiguriranju .htaccess preusmjerivača zapravo je stvaranje same datoteke. Vaš .htaccess bi trebao biti obična tekstualna datoteka. To znači da ga trebate stvoriti u programu za uređivanje teksta koji može generirati datoteke s jednostavnim tekstom (.txt).
  • Na Windows računalu možete koristiti Notepad, koji je jedan od standardnih ugrađenih programa.
  • Na Mac računalu možete koristiti TextEdit. Najprije morate otvoriti izbornik Postavke u programu TextEdit i odabrati "Jednostavni tekst" u odjeljku "Novi dokument". Nakon toga možete započeti proces stvaranja novog textEdit tekstualnog dokumenta za .htaccess datoteku.
  • Na Linuxu možete koristiti bilo koji od mnogih tekstualnih urednika dostupnih za vašu distribuciju - konzolu (vi, nano) i grafiku (npr. Gedit).
  • Kada dokument obvezno čuvateime njegove htaccess.txt. Ako ga spremite samo kao .htaccess, vaše će računalo sakriti datoteku. To je zato što se datoteke koje počinju u određenoj točki smatraju sistemskim datotekama.


    Preuzimanje .htaccess datoteke na poslužitelju

    Za ispravnu preusmjeravanje .htaccess datoteke, datoteka se mora preuzeti u direktorij u kojem želite postaviti postavke preusmjeravanja. To je obično vaš direktorij HTML datoteka (/var/www/vhosts/example.com/httpdocs/), iako ga možete prenijeti na bilo koji poddirektorij na vašem poslužitelju. Kada se datoteka preuzme, preimenujte je izravno u .htaccess. U ovom trenutku, datoteka može postati nevidljiva vašem FTP klijentu jer sada ima format datoteke sustava. Mnogi FTP klijenti omogućuju vam pregled skrivenih datoteka i mapa - preporučljivo je omogućiti tu značajku. Upute o tome kako ga uključiti potražite u dokumentaciji kupca.

    Provjera .htaccess

    Najlakši način za provjeru da li web poslužitelj obrađuje vašu datoteku .htaccess jest namjerno ga oštetiti. Uredite datoteku .htaccess tako da prvi redak započinje riječju Test: Test # Instalirajte glavnu stranicu DirectoryIndex page.html page.txt Sada kada ponovo pokrenete početnu stranicu svoje web-lokacije, vidjet ćete sljedeću pogrešku (pogledajte sliku ispod).
    Ako se pojavi ova pogreška, onda je to u stvari ok - tako poslužitelj obrađuje vašu datoteku i čita iz nje upute za prosljeđivanje. Ako nije, provjerite jesu li datoteka i direktorij u kojima se nalaze čitljivi i, ako je potrebno, izmijenjeniprava pristupa

    Malo o prioritetima preusmjeravanja .htaccess

    Pravila .htaccess su rekurzivna. To jest, direktive napisane u datoteci /home/user/sitename_html/.htaccess primijenit će se i na ovaj direktorij i na njegove podređene mape - osim ako je određeno pravilo poništeno s direktivom u .htaccess datoteci u podređenom direktoriju. , Tako se postavke preusmjeravanja putem .htaccess, koje je odredila datoteka na višoj razini, poništavaju parametrima datoteka koje su na nižim razinama. Na primjer, ako želite uključiti preusmjeravanja za većinu web-lokacije, ali je onemogućiti za određeni direktorij, možete stvoriti zasebni .htaccess s odgovarajućim postavkama i preuzeti ga samo u taj direktorij. Slično tome, datoteke .htaccess na nižoj razini nadjačavaju konfiguraciju datoteka PHP vhost.conf i php.ini na višim razinama, osim ako je za te datoteke izričito zabranjeno poništavanje. Konačno, uređivanje pravila za .htaccess preusmjeravanja u datoteci može biti relevantno za određene vrste direktiva. Popis pravila obrađuje se od početka do kraja; Prvo će se izvršiti direktive na početku datoteke.

    .htaccess preusmjeravanje: glavne vrste

    Postoje različite vrste preusmjeravanja koje se mogu izvoditi kroz .htaccess datoteke. Analizirat ćemo ih i razmotriti svaku vrstu prije nego naučimo kako ih koristiti.

    301: trajno preusmjeravanje

    Ovo je najčešća vrsta preusmjeravanja i najvjerojatnije je ona koju ćete najčešće postaviti. U datoteci.Htaccess 301 preusmjerava stranicu da označi da se njezin stari URL (URL za prosljeđivanje) više ne koristi.

    302: Privremeno preusmjeravanje

    Preusmjeravanje 302 ukazuje da je stari URL stranice privremeno onemogućen, ali će se ubrzo vratiti. Za Apache poslužitelj, ovo pravilo preusmjeravanja se koristi po defaultu.
    Stoga, prije postavljanja .htaccess preusmjeravanja, morate odrediti hoće li doći do trajnog ili privremenog preusmjeravanja. Za primjere u ovom članku koristit ćemo preusmjeravanje 301.

    Primjeri skripti za preusmjeravanje

    U nastavku su navedeni najčešći primjeri .htaccess preusmjeravanja. Da biste mogli koristiti bilo koji od njih, morate otvoriti .htaccess datoteku koju ste stvorili s bilo kojim uređivačem teksta i izraditi potreban primjer koda u njemu. Kôd je zaradio, modus prepisivanja (mod_rewrite) mora biti omogućen na Apache web poslužitelju. Da biste to učinili, morate izvršiti niz radnji ovisno o OS-u. U sustavu Windows učinite sljedeće:
  • Pronađite i otvorite datoteku .http.conf. Nalazi se u direktoriju koji ste instalirali Apache.
  • Stvorite sigurnosnu kopiju http.conf za vraćanje datoteke ako je potrebno, ako napravite bilo kakvu pogrešku.
  • Pronađite datoteku #LoadModule rewrite_module modules /mod_rewrite.so u datoteci i unkommentirajte je (take #).
  • Pronađite blok oznaka i zamijenite ih opcijama All AllOverride All.
  • Pronađite sve reference "AllowOverride None" i zamijenite ih svugdje s "AllowOverride All".
  • Ponovno pokrenite web-poslužitelj i preglednik.
  • Dovoljno je raditi na Linuxu u terminalu:sudo a2enmod rewrite Ova naredba će pokrenuti modul ili izvijestiti da je modul već pokrenut. Da biste napravili nove promjene, ponovno pokrenite Apache naredbom u terminalu: sudo servis apache2 restart
    Sada možemo početi uređivati ​​.htaccess datoteku i proučavati najčešće smjernice za preusmjeravanje. 1. Preusmjeravanje s jedne stranice na drugu .htaccess: Preusmjeravanje 301 /retiredpage.html http://www.example.com/newpage.html 2. Preusmjeravanje mape (sa svim sadržajima): RedirectMatch 301 ^ /olddir /http: //www.yourdomain.com/newdir/3. Preusmjeravanje .htaccess stranice s uklanjanjem WWW: RewriteEngine Na RewriteCond% {HTTP_HOST} ^ www.sitename.com $ [NC] RewriteRule ^ (. *) $ http://sitename.com/$ 1 [L, R = 301] 4. Preusmjeravanje s dodatkom WWW: RewriteEngine Na RewriteCond% {HTTP_HOST}! ^ Www.samplehost.com $ [NC] RewriteRule ^ (. *) $ Http://www.samplehost.com/$ 1 [L, R = 301] 5. Preusmjerava na drugu .htaccess domenu (cjelokupni prijenos web-mjesta): RedirectMatch 301 ^ (. *) $ Http://www.yoursite.com 6. .htaccess-preusmjeravanje HTML datoteka u PHP datoteke : RedirectMatch 301 (. *). Html $ http: //www.examplesite.com$1.php 7. Prosljeđivanje Popis stranica s dodatkom HTTPS-a: RewriteCond% {HTTPS} isključeno RewriteRule (. *) Https: //% {SERVER_NAME} /$ 1 [R = trajno, L] 8. Zamijenite sva slova u URL-u u malom: RewriteMap lc int: tolower Ovaj isječak koda mora se dodati u httpd.conf vašeg web poslužitelja. Zatim otvorite .htaccess datoteku i napravite: RewriteEngine Na RewriteCond% {REQUEST_URI} [A-Z] RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L] 9. Koristite regularne izraze. Pravila preusmjeravanja često sadrže znakove koji su sastavljeni u regularnim izrazima. To poslužitelju omogućuje da točno zna što želite promijeniti u URL-u. Međutim, regularni izrazi mogu biti teško razumljivi na prvi pogled. Evo nekoliko uobičajenih stavki koje možete vidjeti i koristiti u pravilima za prepisivanje URL-ova:kao i konkretni primjeri njihove uporabe:
  • ^: početak zamjenske linije;
  • $: kraj zamjenske linije.
  • Primjer: regularni izraz ^ folder1 $ daje signal za pronalaženje i zamjenu teksta "folder1" unutar veze.
  • . : bilo koji znak koji nije prolaz (na primjer, a, B, 3);
  • *: Označava da se prethodni tekst može ponavljati neograničeno;
  • Primjer: regularni izraz ^ učitavanja. * $ Omogućuje zamjenu teksta "uploads2009", "uploads2010" i tako dalje; Redovni izraz ^. * $ Znači "pronaći bilo što". Korisno je ako ne znate što korisnik može unijeti u tekst URL-a.
  • (): Odaberite dio teksta koji treba koristiti u pravilu kao vrijednost varijable $ 1. To je potrebno, na primjer, za obradu zahtjeva za datoteke koje moraju biti iste za staru i novu verziju URL-a.
  • Pogreška 404 nije pronađena

    Povremeno se pojavljuju pogreške u postavljanju preusmjeravanja. Uzmimo u obzir glavne razloge zbog kojih .htaccess preusmjeravanje možda neće raditi. 404 Not Found Greška koja se pojavljuje tijekom preusmjeravanja je uobičajena. U tom slučaju pažljivo ispitajte URL generiran u adresnoj traci. Postoji li potrebna datoteka na novom mjestu na poslužitelju koju određuje pravilo preusmjeravanja? Možda ćete morati kopirati datoteke s stare lokacije na novu lokaciju ili učiniti pravilo preusmjeravanja šire tako da u nedostatku tražene veze postoji preusmjeravanje na početnu stranicu web-lokacije. Ako je URL samo netočan (na primjerhttp://example.com/folder1//file.html - zabilježite dvije kose crte), morate pogledati sintaksu pravila preusmjeravanja.

    Endless URL, timeout ili loop

    Ako je URL preusmjeravanja generiran predugo ili stranica nije preuzeta predugo ili vaš preglednik šalje pogrešku preusmjeravanja, većina će se preusmjeravanja vjerojatno sukobljavati. Morate provjeriti cijelu datoteku .htaccess za pravila preusmjeravanja koja se mogu podudarati s drugim pravilima. Možda ćete također morati provjeriti .htaccess datoteke u poddirektorijima. Imajte na umu da FTP neće prikazati .htaccess datoteke ako niste omogućili prikaz skrivenih datoteka i mapa. Osim toga, možete uključiti preusmjeravanje unutar HTML i PHP stranica. Provjerite stranicu koja uzrokuje problem za interne preusmjeravanja. Dodavanje pravila [L] preusmjeravanja može pomoći u nekim slučajevima, budući da ova oznaka naređuje poslužitelju da prestane pokušavati preusmjeriti URL nakon primjene pravila.

    Kako napraviti preusmjeravanje bez .htaccessa

    Konačno, pogledajmo kako preusmjeriti URL bez uređivanja .htaccess datoteke koristeći virtualni Apache host. Usput, ova metoda je jednostavnija od pravila za izradu .htaccess stranice. Otvorite uređivač teksta pomoću vhost konfiguracijske datoteke (httpd.conf), koja se obično nalazi u direktoriju /etc /apache2 /sites /sitename. Odabrani uzorak datoteke prikazuje preusmjeravanje: naziv poslužitelja www.mysite.com ServerAlias ​​www.mysite.comPreusmjeri /http://mysite.com Konfiguracija gore preusmjerava sve zahtjeve za domenu bez WWW poddomene. Da biste preusmjerili sve zahtjeve za domenu s WWW poddomenom, izmijenite konfiguraciju kao što je prikazano u nastavku. ServerName anywebsite.com ServerAlias ​​anywebsite.com Preusmjeri /http://www.anywebsite.com Ponovno pokrenite Apache i web lokacija će se ispravno pokrenuti. Gornja metoda je najlakša i lakša za implementaciju od preusmjeravanja s jedne stranice na drugu u htaccessu.

    Povezane publikacije