.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
Preuzimanje .htaccess datoteke na poslužitelju
Provjera .htaccess
Malo o prioritetima preusmjeravanja .htaccess
.htaccess preusmjeravanje: glavne vrste
301: trajno preusmjeravanje
302: Privremeno preusmjeravanje
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
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.
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.
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.
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.