Preusmeritev Htaccess in njene nastavitve

Datoteke .htaccess so lahko v korenskem imeniku mesta (npr. /Home /user /sitename /) ali njegovih podmapih. Uporabljajo se za organiziranje preusmeritev obiskovalcev iz ene domene ali dokumenta na vaš spletni strežnik v drugega. Vsaka .htaccess datoteka vsebuje niz pravil (direktiv), po katerih spletni strežnik uporabnika preusmeri na eno ali drugo stran. Številni sistemi za upravljanje vsebin uporabljajo nastavitve preusmeritve .htaccess. Datoteke, ki jih je ustvaril vaš CMS, lahko urejate z vnosom novih direktiv o preusmerjanju ali ročno ustvarite svoje datoteke .htaccess.


Ustvarjanje .htaccess datoteke

Prvi korak pri nastavitvi preusmerjevalnika .htaccess je dejansko ustvarjanje same datoteke. Vaš .htaccess mora biti navadna besedilna datoteka. To pomeni, da ga morate ustvariti v programu za urejanje besedila, ki lahko ustvari datoteke z navadnim besedilom (.txt).
  • Na računalniku z operacijskim sistemom Windows lahko uporabite beležnico, ki je eden od standardnih vgrajenih programov.
  • Na Mac računalniku lahko uporabite TextEdit. Najprej morate odpreti meni Nastavitve v programu TextEdit in v razdelku »Nov dokument« izberite »Enostavno besedilo«. Po tem lahko začnete postopek ustvarjanja besedilnega dokumenta textEdit za vašo datoteko .htaccess.
  • Na Linuxu lahko uporabite katerega koli od številnih urejevalnikov besedila, ki so na voljo za vašo distribucijo - konzolo (vi, nano) in grafiko (na primer, gedit).
  • Kadar je dokument obvezenime njegovega htaccess.txt. Če ga shranite samo kot .htaccess, bo računalnik skril datoteko. To je zato, ker se datoteke, ki se začnejo na točki, obravnavajo kot sistemske datoteke.


    Prenos datoteke .htaccess na strežnik

    Za pravilno preusmeritev .htaccess datoteke, morate datoteko prenesti v imenik, v katerem želite nastaviti nastavitve preusmeritve. To je običajno vaš imenik HTML datotek (/var/www/vhosts/example.com/httpdocs/), čeprav ga lahko naložite v kateri koli podimenik v strežniku. Ko je datoteka prenesena, jo preimenujte v .htaccess. Na tej točki lahko datoteka postane nevidna vašemu odjemalcu FTP, saj ima zdaj obliko sistemske datoteke. Mnogi odjemalci FTP omogočajo ogled skritih datotek in map - priporočljivo je omogočiti to funkcijo. Za navodila o vklopu glejte dokumentacijo stranke.

    Preverjanje .htaccess

    Najlažji način, da preverite, ali spletni strežnik obdeluje vašo datoteko .htaccess, je namerno poškodoval. Uredite datoteko .htaccess, tako da se prva vrstica začne z besedo Test: Test # Namesti glavno stran DirectoryIndex page.html page.txt Sedaj, ko znova zaženete domačo stran svojega spletnega mesta, boste videli naslednjo napako (glejte spodnjo fotografijo).
    Če se ta napaka pojavi, je to v resnici ok - tako strežnik obdeluje vašo datoteko in iz nje bere direktive o posredovanju. Če ni, se prepričajte, da sta datoteki in imeniku, v kateri se nahaja, berljivi in ​​po potrebi spremenjenipravice dostopa

    Nekaj ​​o prioritetah preusmeritve .htaccess

    Pravila .htaccess so rekurzivna. To pomeni, da bodo direktive, zapisane v datoteki /home/user/sitename_html/.htaccess, uporabljene za ta imenik in njegove podrejene mape - razen če je določeno pravilo preklicano z direktivo v datoteki .htaccess v podrejenem imeniku. . Nastavitve preusmeritve prek .htaccessa, ki jih podaja datoteka na višji ravni, so torej razveljavljene s parametri datotek, ki so na nižjih ravneh. Na primer, če želite vključiti preusmeritve za večino vašega spletnega mesta, vendar ga onemogočite za določen imenik, lahko ustvarite ločen .htaccess z ustreznimi nastavitvami in ga prenesete samo v ta imenik. Podobno datoteke .htaccess na nižji ravni preglasijo konfiguracijo datotek PHP vhost.conf in php.ini na višjih ravneh, razen če je za te datoteke izrecno prepovedano razveljavitev. Nazadnje, urejanje pravil za preusmeritve .htaccess v datoteki je lahko pomembno za nekatere vrste direktiv. Seznam pravil se obravnava zaporedoma od začetka do konca; Najprej se izvedejo direktive na začetku datoteke.

    .htaccess preusmeritev: glavne vrste

    Obstajajo različne vrste preusmeritev, ki jih je mogoče zagnati prek datotek .htaccess. Analizirali jih bomo in razmislili o vsaki vrsti, preden se naučimo, kako jih uporabljati.

    301: stalna preusmeritev

    To je najpogostejša vrsta preusmeritve in najverjetneje je tista, ki jo boste najpogosteje vzpostavljali. V datoteki.Htaccess 301 preusmeri stran, da pokaže, da se njen stari URL (URL za posredovanje) ne uporablja več.

    302: Začasna preusmeritev

    Preusmeritev 302 označuje, da je stari URL strani začasno onemogočen, vendar bo kmalu obnovljen. Za strežnik Apache se pravilo preusmeritve uporablja privzeto.
    Zato morate pred nastavitvijo preusmeritve .htaccess ugotoviti, ali bo prišlo do trajne ali začasne preusmeritve. Za primere v tem članku bomo uporabili preusmeritev 301.

    Primeri skriptov za preusmeritev

    Najpogostejši primeri preusmeritev .htaccess so navedeni spodaj. Če želite uporabiti katero od njih, morate odpreti datoteko .htaccess, ki ste jo ustvarili s katerim koli urejevalnikom besedila, in v njej narediti potreben primer kode. Koda, ki ste jo dobili, mora biti omogočen na modulu Apache na strežniku Apache. Če želite to narediti, morate izvesti številna dejanja glede na operacijski sistem. V sistemu Windows naredite naslednje:
  • Poiščite in odprite datoteko .http.conf. To je v imeniku, ki ste ga namestili Apache.
  • Ustvarite varnostno kopijo http.conf, da po potrebi obnovite datoteko, če naredite napake.
  • Poiščite datoteko #LoadModule rewrite_module modules /mod_rewrite.so v datoteki in jo popravite (vzemite #).
  • Poiščite blok oznak in ga zamenjajte z možnostjo All AllOverride All.
  • Poiščite vse reference "AllowOverride None" in jih povsod nadomestite z "AllowOverride All".
  • Znova zaženite spletni strežnik in brskalnik.
  • Dovolj je teči na Linuxu v terminalu:sudo a2enmod rewrite Ta ukaz zažene modul ali sporoči, da je modul že zagnan. Če želite narediti nove spremembe, znova zaženite Apache z ukazom v terminalu: sudo service apache2 restart
    Zdaj lahko začnemo urejati datoteko .htaccess in preučujemo najpogostejše direktive o preusmerjanju. 1. Preusmerite z ene strani na drugo .htaccess: Preusmeritev 301 /retiredpage.html http://www.example.com/newpage.html 2. Preusmerite mapo (z vso vsebino): RedirectMatch 301 ^ /olddir /http: //www.yourdomain.com/newdir/3. Preusmeritev .htaccess strani z odstranitvijo WWW: RewriteEngine On RewriteCond% {HTTP_HOST} ^ www.sitename.com $ [NC] RewriteRule ^ (. *) $ http://sitename.com/$ 1 [L, R = 301] 4. Preusmeritev z dodatkom WWW: RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www.samplehost.com $ [NC] RewriteRule ^ (. *) $ Http://www.samplehost.com/$ 1 [L, R = 301] 5. Preusmeri na drugo .htaccess domeno (celoten prenos strani): RedirectMatch 301 ^ (. *) $ Http://www.yoursite.com 6. .htaccess-preusmeritev datotek HTML v datoteke PHP : RedirectMatch 301 (. *). Html $ http: //www.examplesite.com$1.php 7. Posredovanje Seznam strani z dodatkom HTTPS: RewriteCond% {HTTPS} izključeno RewriteRule (. *) Https: //% {SERVER_NAME} /$ 1 [R = trajno, L] 8. Zamenjajte vse črke v URL-ju v malem: RewriteMap lc int: tolower Ta odrezek kode morate dodati v httpd.conf vašega spletnega strežnika. Nato odprite datoteko .htaccess in naredite: RewriteEngine On RewriteCond% {REQUEST_URI} [A-Z] RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L] 9. Uporabite regularne izraze. Pravila preusmeritve pogosto vsebujejo znake, ki so sestavljeni v regularnih izrazih. Tako lahko strežnik natančno ve, kaj želite spremeniti v URL-ju. Vendar pa je lahko regularni izraz težko razumljiv na prvi pogled. Tukaj je nekaj skupnih elementov, ki jih lahko vidite in uporabite v pravilih za pisanje URL-jev:kot tudi konkretne primere njihove uporabe:
  • ^: začetek nadomestne vrstice;
  • $: konec vrstice za zamenjavo.
  • Primer: regularni izraz ^ folder1 $ daje signal za iskanje in zamenjavo besedila "mapa1" znotraj povezave.
  • . : katerikoli znak, ki ni prehod (npr. a, B, 3);
  • *: Označuje, da se predhodno besedilo lahko ponovi neomejeno;
  • Primer: regularni izraz ^ uploads. * $ Omogoča zamenjavo besedila "uploads2009", "uploads2010" in tako naprej; Redni izraz ^. * $ Pomeni "najti karkoli". Uporabno je, če ne veste, kaj lahko uporabnik vnese v besedilo URL-ja.
  • (): Izberite del besedila, ki naj se uporablja v pravilu kot vrednost spremenljivke $ 1. To je potrebno, na primer, za obdelavo zahtevkov za datoteke, ki morajo biti enake za staro in novo različico URL-ja.
  • Error 404 Not Found

    Občasno se pojavijo napake pri nastavitvi preusmeritve. Poglejmo glavne razloge, zakaj preusmeritev .htaccess morda ne bo delovala. Običajna je napaka 404 Not Found, ki se pojavi med preusmeritvami. V tem primeru skrbno preglejte URL, ustvarjen v naslovni vrstici. Ali je potrebna nova datoteka na novi lokaciji v strežniku, ki jo določa pravilo preusmeritve? Morda boste morali kopirati datoteke s stare lokacije na novo lokacijo ali pa širšo pravilo za preusmeritev, tako da je v odsotnosti zahtevane povezave do datoteke prišlo do preusmeritve na domačo stran mesta. Če je URL samo napačen (na primerhttp://example.com/folder1//file.html - upoštevajte dve poševnici), si morate ogledati skladnjo pravila preusmeritve.

    Endless URL, timeout ali loop

    Če je URL preusmeritve ustvarjen predolgo ali stran ni prenesena predolgo ali če vaš brskalnik pošlje napako preusmeritve, bo večina preusmeritev verjetno v navzkrižju. Za preusmeritev pravil, ki lahko sovpadajo z drugimi pravili, morate preveriti celotno datoteko .htaccess. Morda boste morali v podimenikih preveriti tudi datoteke .htaccess. Upoštevajte, da FTP ne bo prikazal datotek .htaccess, razen če ste omogočili prikazovanje skritih datotek in map. Poleg tega lahko vključite preusmeritev znotraj strani HTML in PHP. Preverite stran, ki povzroča težave, za notranje preusmeritve. Dodajanje pravil za preusmeritev [L] lahko v nekaterih primerih pomaga, ker ta ukaz ukazuje strežniku, da preneha poskušati preusmeriti URL po uporabi pravila.

    Kako narediti preusmeritev brez .htaccess

    Nazadnje pa poglejmo, kako preusmeriti URL brez urejanja datoteke .htaccess z virtualnim gostiteljem Apache. Mimogrede, ta metoda je enostavnejša kot pravila za pripravo .htaccess strani. Odprite urejevalnik besedila s konfiguracijsko datoteko vhost (httpd.conf), ki se običajno nahaja v imeniku /etc /apache2 /sites /sitename. Izbrani vzorec datoteke prikazuje preusmeritev: ime strežnika www.mysite.com ServerAlias ​​www.mysite.comPreusmeri /http://mysite.com Konfiguracija zgoraj preusmeri vse zahteve za domeno brez poddomene WWW. Če želite preusmeriti vse zahteve za domeno s poddomeno WWW, spremenite konfiguracijo, kot je prikazano spodaj. ServerName anywebsite.com ServerAlias ​​anywebsite.com Preusmeri /http://www.anywebsite.com Znova zaženite Apache in spletno mesto se bo pravilno začelo preusmeriti. Zgornja metoda je najlažja in lažja za izvedbo kot preusmeritev z ene strani na drugo v htaccess.

    Sorodne publikacije