Preusmeritev Htaccess in konfiguriranje
Datoteke .htaccess se lahko nahajajo v korenskem imeniku spletnega mesta (na primer, / home / user / sitename /)
Vsebina
- Ustvarjanje. htaccess datoteke
- Prenos datoteke .htaccess v strežnik
- Preverjanje dela .htaccess
- Malo o prednostnih nalogah preusmeritve .htaccess
- Preusmeritev .htaccess: osnovni pogledi
- 301: stalno preusmerjanje
- 302: začasna preusmeritev
- Primeri preusmeritvenih scenarijev
- Napaka 404 ni bila najdena
- Neomejen url, časovna omejitev ali zanke
- Kako narediti preusmeritev brez .htaccess
Veliko sistemov za upravljanje vsebine prevzame nastavitve preusmeritve spletnega mesta iz .htaccess. Datoteke, ki jih je ustvaril vaš CMS, lahko urejate tako, da vnesete nove direktive za preusmeritev ali ustvarite svoje datoteke .htaccess ročno.
Ustvarjanje. Htaccess datoteke
Prvi korak pri nastavitvi preusmeritve. Htaccess je pravzaprav ustvarjanje datoteke samega. Vaša .htaccess mora biti preprosta besedilna datoteka. To pomeni, da ga morate ustvariti v programu za urejanje besedila, ki lahko ustvari datoteke z navadnim besedilom (.txt).
- V računalniku z operacijskim sistemom Windows lahko uporabite Notepad, ki je eden od vgrajenih standardnih programov.
- Na Macu lahko uporabite TextEdit. Najprej morate v programu TextEdit odprati meni »Nastavitve« in v razdelku »Nov dokument« izberite »Preprosto besedilo«. Nato lahko začnete postopek ustvarjanja novega besedilnega dokumenta TextEdit za datoteko .htaccess.
- V Linuxu lahko uporabite katerikoli od mnogih urejevalnikov besedil, ki so na voljo za vašo distribucijo - konzolo (vi, nano) in grafiko (na primer, gedit).
Pri shranjevanju dokumenta imejte htaccess.txt. Če ga shranite preprosto kot .htaccess, bo vaš računalnik skril datoteko. To je zato, ker se datoteke, ki se začnejo s točko, štejejo za sistemske datoteke.
Prenos datoteke .htaccess v strežnik
Za pravilno preusmeritev prek datoteke .htaccess morate datoteko prenesti natančno v imenik na strežniku, za katerega želite nastaviti nastavitve preusmerjanja. Običajno je to vaš imenik datotek HTML (/var/www/vhosts/primer.com/httpdocs/), čeprav ga lahko naložite v poljuben podimenik na vašem strežniku.
Ko je datoteka naložena, jo preimenujte neposredno v .htaccess.
Na tej točki lahko datoteka postane nevidna za vašega FTP odjemalca, saj ima zdaj format sistemske datoteke. Mnogi FTP odjemalci vam omogočajo ogled skritih datotek in map - priporočamo, da to funkcijo omogočite. Za navodila o tem, kako jo vklopite, si oglejte dokumentacijo vaše stranke.
Preverjanje dela .htaccess
Najpreprostejši način preverjanja, ali vaš spletni strežnik obdeluje datoteko .htaccess, je njegova namerna poškodba.
Uredite .htaccess datoteko, tako da se prva vrstica začne z besedo Test:
Test
# Nastavi domačo stran
DirectoryIndex stran.html page.txt ...
Če ponovno zaženete glavno stran vaše spletne strani, se prikaže naslednja napaka (na spodnji sliki).
Če pride do te napake, je to dejansko dobro - potem strežnik obdeluje vašo datoteko in od nje prebrati direktive za preusmerjanje. Če ne, se prepričajte, da sta datoteka in imenik, v katerem je nameščen, berljivi, in po potrebi spremenite pravice dostopa.
Malo o prednostnih nalogah preusmeritve .htaccess
Pravila .htaccess so rekurzivna. To pomeni, direktive, napisane v datoteki /home/user/sitename_html/.htaccess se bo uporabljalo za to katalog, in do svojih otroških map - razen v primerih, ko je določeno pravilo preklicano z direktivo v datoteki .htaccess, ki se nahaja v imeniku otroka.
Tako nastavitve preusmeritve prek .htaccess, ki jih poda datoteka na višji ravni, preglasijo nastavitve datotek na nižjih ravneh. Na primer, če želite omogočiti preusmeritev za velik del vaše spletne strani, ampak ga izklopite za določeno mapo, lahko ustvarite ločeno Htaccess z ustreznimi nastavitvami in jo naložite le ta imenik.
Podobno .htaccess datoteke nizko stopnjo preglasijo PHP nastavitve v php.ini datotek vhost.conf in na višjih ravneh, razen če se preglasitev ni izrecno prepovedano za te datoteke.
Nazadnje, vrstni red pravilnika za preusmeritev .htaccess v datoteki ima lahko vrednost za nekatere vrste direktiv. Seznam pravil se zaporedno obdeluje od začetka do končnih navodil na začetku datoteke najprej.
Preusmeritev .htaccess: osnovni pogledi
Obstajajo različne vrste preusmeritev, ki se lahko izvajajo s .htaccess datotekami. Analizirali jih bomo in preučili vsako vrsto, preden bi se naučili, kako jih uporabiti.
301: stalno preusmerjanje
To je najpogostejša vrsta preusmeritve in, najverjetneje, tista, ki jo boste najpogosteje konfigurirali. V datoteki .htaccess 301 preusmeritev strani označuje, da se njegov stare URL (preusmerjeni URL) ne uporablja več.
302: Začasna preusmeritev
Preusmeritev 302 pomeni, da je stari URL strani začasno onemogočen, vendar bo kmalu obnovljen. Za Apache se to pravilo preusmeritve privzeto uporabi.
Preden konfigurirate .htaccess preusmeritev, morate ugotoviti, ali je preusmeritev trajna ali začasna. Za primere v tem članku bomo uporabili preusmeritev 301.
Primeri preusmeritvenih scenarijev
Spodaj so najpogostejši primeri preusmeritve .htaccess.
Za uporabo katerega koli od njih morate odpreti datoteko .htaccess, ki ste jo ustvarili s katerimkoli urejevalnikom besedila, in ji dodajte zahtevan vzorec kode.
Če želite kodo delati, mora biti na spletnem strežniku Apache omogočen modul za ponovno pisanje (mod_rewrite). Če želite to narediti, morate opraviti več dejanj, odvisno od vašega operacijskega sistema.
V operacijskem sistemu Windows storite naslednje:
Poiščite in odprite datoteko .http.conf. V imeniku, v katerega ste namestili Apache, je.
Ustvarite varnostno kopijo http.conf, po potrebi obnovite datoteko, če naredite napake.
Poiščite vrstico v datoteki Moduli #LoadModule rewrite_module / mod_rewrite.so in jo odložite (odstranite znak #).
Poiščite blok, ki je priložen oznakam
in jo zamenjajte .Možnosti VseAllowOverride All Poiščite vse reference "AllowOverride None" in jih povsod zamenjajte "AllowOverride Vse".
Znova zaženite spletni strežnik in brskalnik.
Na Linuxu je dovolj, da ga izvedete v terminalu:
Sudo a2enmod prepisati
Ta ukaz bo sprožil modul ali vas bo obvestil, da se modul že izvaja. Če želite aktivirati nove spremembe, znova zaženite Apache z ukazom v terminalu:
storitev sudo apache2 ponovno zaženite
Zdaj lahko začnemo urejati datoteko .htaccess in se učiti najpogostejših direktiv za preusmeritev.
1. Preusmerite z ene strani na drugo v .htaccess:
Preusmeri 301 /retiredpage.html https://example.com/newpage.html
2. Preusmeritev map (z vso vsebino):
RedirectMatch 301 ^ / olddir / https://yourdomain.com/newdir/
3. Preusmerite stran v .htaccess z odstranitvijo WWW:
RewriteEngine On
RewriteCond% {HTTP_HOST} ^ www .sitename .com $ [NC]
RewriteRule ^ (. *) $ Http://sitename.com/$1 [L, R = 301]
4. Preusmeritev z dodajanjem WWW:
RewriteEngine On
RewriteCond% {HTTP_HOST}! ^ Www .prizorišče .com $ [NC]
RewriteRule ^ (. *) $ Http://samplehost.com/$1 [L, R = 301]
5. Preusmerite na drugo domeno v .htaccess (premikate spletno mesto v celoti):
RedirectMatch 301 ^ (. *) $ Http://yoursite.com
6 .htaccess-preusmerjanje datotek HTML v datoteke PHP:
RedirectMatch 301 (. *) . Html $ http: //examplesite.com$1.php
7. Preusmerjanje strani z dodajanjem HTTPS:
Izklopi RewriteCond% {HTTPS}
RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R = trajno, L]
8. Zamenjajte vse velike črke v URL z malimi črkami:
RewriteMap lc int: tolower
Ta delček kode je treba dodati v httpd.conf vašega spletnega strežnika. Po tem morate odpreti datoteko .htaccess in dodati:
RewriteEngine On
RewriteCond% {REQUEST_URI} [A-Z]
RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L]
9. Uporaba regularnih izrazov. Pravila za preusmeritev pogosto vsebujejo znake, ki se dodajajo regularnim izrazom. Zahvaljujoč temu strežnik natančno ve, kaj želite spremeniti v URL-ju. Vendar pa je na kratko težko razumeti regularne izraze. Tukaj je nekaj skupnih elementov, ki si jih lahko ogledate in uporabite v njihovih pravilih za ponovno prepisovanje URL-jev, pa tudi posebne primere njihove uporabe:
^: začetek nadomeščenega niza;
$: konec nadomeščenega niza.
Primer: regularni izraz ^ mapo1 $ Podaja signal za iskanje in zamenjavo besedila «Folder1» znotraj povezave.
. : kateri koli znak, ki ni prostor (na primer, a, B, 3) -
*: označuje, da se lahko prejšnje besedilo ponovi večkrat;
Primer: regularni izraz ^ nalaganje. * $ vam omogoča zamenjavo besedila «Nalaganje2009»,«Uploads2010» in tako naprej;
Redni izraz ^. * $ pomeni "najti kaj." Koristen je, če ne veste, ali lahko uporabnik vnese URL v besedilo.
(): izberite del besedila, ki naj bi bil uporabljen v pravilu kot vrednost $ 1. To je potrebno, na primer, za obdelavo zahtev za določene datoteke, ki morajo biti enake tako za stare kot nove različice URL-ja.
Napaka 404 ni bila najdena
Včasih se zgodi, da pri nastavitvi preusmeritve pride do napak. Razmislimo o glavnih razlogih, zakaj preusmeritev .htaccess morda ne bo delovala.
Pogosta napaka je napaka 404 Ni ugotovljeno, ki se pojavi pri preusmeritvi. V tem primeru morate skrbno preučiti URL, ki je oblikovan v naslovni vrstici. Ali obstaja datoteka na novi lokaciji na strežniku, ki je določena s pravilom za posredovanje? Morda boste morali kopirati datoteke iz starega mesta na novo lokacijo ali narediti preusmeritveno pravilo širše, tako da če ni datoteke, ki jo potrebujete, je bila na spletno stran poslana povezava do glavne strani spletnega mesta.
Če je URL preprosto napačen (na primer, https://example.com/folder1//file.html - upoštevajte dve črtici), morate spremeniti sintakso pravila preusmeritve.
Neomejen URL, časovna omejitev ali zanke
Če se pojavljajo v preusmeritev URL-naslov predolgo, predolgo se stran ne naloži, ali vaš brskalnik daje sporočilo o napaki preusmeritev je lahko preusmerilo nekaj konflikta pravil s seboj.
Preveriti morate celotno datoteko .htaccess za pravila preusmeritve, ki se lahko ujemajo z drugimi pravili. Morda boste morali tudi preveriti datoteke .htaccess v podimeniki. Upoštevajte, da FTP ne bo prikazal .htaccess datotek, razen če omogočite možnost, da si ogledate skrite datoteke in mape.
Poleg tega lahko vključite preusmeritve znotraj strani HTML in PHP. Preverite stran, s katero se pojavi težava za notranje preusmeritve.
Dodajanje [L] ko lahko v nekaterih primerih pomaga preusmeritveno pravilo, ker ta zastava ukazuje strežniku, da preneha poskušati preusmeriti URL po uporabi pravila.
Kako narediti preusmeritev brez .htaccess
Na koncu si oglejmo, kako narediti preusmeritev URL-jev brez urejanja datoteke .htaccess z gostiteljem Apache virtualnega strežnika. Mimogrede, ta metoda je lažja od sestavljanja pravil preusmeritve za strani v .htaccess.
Odprite konfiguracijsko datoteko vhost (httpd.conf) z urejevalnikom besedil, ki se navadno nahaja v imenik / etc / apache2 / sites / sitename.
Izbrani delček vzorčne datoteke prikazuje preusmeritev:
ServerName mysite.com
ServerAlias mysite.com
Preusmerite / https://mysite.com
Zgornja konfiguracija preusmeri vse zahteve domene brez poddomene
Če želite vse zahteve preusmeriti na domeno s poddomeno WWW, spremenite konfiguracijo, kot je prikazano spodaj.
Ime strežnika anywebsite.com
ServerAlias anywebsite.com
Preusmerite / https://anywebsite.com
Znova zaženite Apache in spletno mesto se bo pravilno preusmerilo. Zgornja metoda je najpreprostejša in jo je lažje izvajati kot preusmeritev z ene strani na drugo v htaccess.
- Free HTTPS certifikat: navodila za sprejem
- Kako vzpostaviti povezavo HTTPS? Kakšna je razlika med spletnimi mesti na HTTPS ali HTTP?
- Kako narediti CNC-povezave: navodila po korakih
- SQL datoteka. Format datoteke SQL: opis razširitve
- Kako narediti preusmeritev s http v https, in zakaj je to potrebno?
- Napaka v PHPu
- Kakšna je 500 napaka notranjega strežnika? Kaj, če ste videli napis 500 Internal Server Error…
- Kako naj bo datoteka gostitelja na Windowsu?
- Napaka 404 Datoteke ni bilo mogoče najti: vzroki in rešitve
- Napaka notranjega strežnika Napaka: kaj je to in kako ravnati z njo
- Kako konfigurirati preusmeritev 301 skozi .htaccess. Pravi odnos kot preusmeritev 301 v Joomla in…
- Preusmeritev HTML: nadzor prometa s strani obiskovalcev
- Htaccess (kodiranje): nastavitev, primeri uporabe
- 403 Prepovedano Nginx: kaj je to in kako ga popraviti?
- Namestitev in konfiguracija phpMyAdmin: navodila po korakih in priporočila
- ERR_TOO_MANY_REDIRECTS: kako odpraviti napako
- Orodja za phpMyAdmin Localhost: opis, napake
- Kako preneham z dostopom do spletnega mesta?
- Na poti preko interneta. URL
- Kako prenesti spletno stran na drugo spletno mesto gostovanja, ki teče v sistemu CMS Joomla.
- Notranja strežna napaka ali napaka 500