Presmerovanie Htaccess a jeho nastavenia

Súbory .htaccess môžu byť v koreňovom adresári stránky (napr. /Home /user /sitename /) alebo jeho podadresáre. Používajú sa na usporiadanie presmerovaní návštevníkov z jednej domény alebo dokumentu na webový server na iný. Každý súbor .htaccess obsahuje súbor pravidiel (smerníc), podľa ktorých webový server presmeruje používateľa na jednu alebo druhú stránku. Mnoho systémov správy obsahu používa nastavenia presmerovania .htaccess. Môžete upraviť súbory vytvorené vašim CMS zadaním nových direktív na presmerovanie alebo vytvoriť vlastné súbory .htaccess manuálne.


Vytvorenie súboru .htaccess
Prvý krok pri konfigurácii prepínača .htaccess vlastne vytvára samotný súbor. Váš .htaccess by mal byť textový súbor. To znamená, že ho musíte vytvoriť v programe na úpravu textu, ktorý dokáže generovať súbory s textom (.txt).
  • V počítači so systémom Windows môžete používať program Poznámkový blok, ktorý je jedným zo štandardných vstavaných programov.
  • Na počítači Mac môžete použiť TextEdit. Najskôr musíte otvoriť ponuku Nastavenia v aplikácii TextEdit a vybrať položku "Jednoduchý text" v časti "Nový dokument". Potom môžete spustiť proces vytvárania nového textového dokumentu textEdit pre súbor .htaccess.
  • V systéme Linux môžete použiť ľubovoľný z mnohých textových editorov, ktoré sú k dispozícii na distribúciu - konzolu (vi, nano) a grafika (napríklad gedit).
  • Ak uchovávate dokument povinnýpomenujte jeho htaccess.txt. Ak ho uložíte ako .htaccess, počítač skryje súbor. Je to preto, že súbory, ktoré začínajú v určitom bode, sa považujú za systémové súbory.


    Stiahnite si súbor .htaccess servera

    Pre správne presmerovanie súboru .htaccess má byť vložený do adresárový server, pre ktoré chcete nainštalovať nastavenie presmerovania. Zvyčajne sa jedná o svoj katalóg HTML súbory (/var/www/vhosts/example.com/httpdocs/), aj keď je možné si ju stiahnuť a akýkoľvek sub-adresára na vašom serveri. Po stiahnutí súboru ho premenujte priamo na .htaccess. V tomto okamihu sa súbor môže stať neviditeľným pre váš FTP klient, pretože teraz má formát systémového súboru. Mnoho klientov FTP vám umožňuje prezerať skryté súbory a priečinky - odporúčame povoliť túto funkciu. Pokyny na jeho zapnutie nájdete v dokumentácii zákazníka.

    kontroluje pracovné .htaccess

    Najjednoduchší spôsob, ako zistiť, či webový server spracováva váš súbor .htaccess, to je úmyselné poškodenie. Editovať súbor .htaccess tak, že prvý riadok začína slovom test: test # nastaviť domovskú stránku DirectoryIndex stranka.html page.txt Teraz, ak reštartovanie domovskú stránku vášho webu, uvidíte nasledujúce chybe (viď obrázok nižšie).
    Ak sa zobrazí táto chyba, je to v skutočnosti, dobre - potom server spracuje súbor a prečíta z neho presmerovať smerníc. Ak nie, uistite sa, že súbor a adresár, v ktorých je umiestnený, sú čitateľné av prípade potreby upravenéprístupových práv

    Trocha .htaccess presmerovania priority

    pravidlá .htaccess sú rekurzívne. Táto smernica, napísaný v súbore /home/user/sitename_html/.htaccess byť aplikovaná na tento adresár a jeho podriadené zložky - s výnimkou prípadov, niektoré konkrétne pravidlo zrušené pomocou direktívy v súbore .htaccess, ktorý je dcérskou spoločnosťou katalóg , Tak, a to prostredníctvom .htaccess nastavenie presmerovania, ktoré sú uvedené súbor na vyššej úrovni súborov nastavení prepísaná, ktoré sú na nižších úrovniach. Napríklad, ak chcete povoliť presmerovanie pre väčšinu z vašich stránok, ale to vypnúť pre katalóg, môžete vytvoriť samostatnú sadu vhodne .htaccess a nahrať ju iba do tohto adresára. Podobne .htaccess súbory nižšej úrovne prepísať nastavenie PHP php.ini súbory vhost.conf a na vyšších úrovniach, pokiaľ prevažujúceho výslovne zakázané pre tieto súbory. Napokon, usporiadanie pravidiel pre presmerovania .htaccess v súbore môže byť relevantné pre určité typy smerníc. Zoznam pravidiel sa postupne spracováva od začiatku do konca. Smernice na začiatku spisu budú vykonané ako prvé.

    htaccess presmerovanie: základné typy

    Existujú rôzne typy presmerovania, ktoré možno vykonávať v súboroch .htaccess. Budeme ich analyzovať a zvážime každý typ predtým, než sa naučíme, ako ich používať.

    301: presmerovanie pravidelne

    Jedná sa o najbežnejší typ presmerovania a pravdepodobne ten, ktorý budete často upravovať. V súbore.htaccess 301 presmerovanie strana uvádza, že jej stará URL adresa (URL adresa perenapravlyaemыy) sa už nepoužíva.

    302: dočasné presmerovanie

    presmerovanie 302 znamená, že stará URL adresa stránky je dočasne odpojený, ale bude obnovené najskôr. Pre server Apache sa toto pravidlo presmerovania používa predvolene.
    Tým, pred nastavením .htaccess presmerovania, budete musieť rozhodnúť, je trvalé alebo dočasné presmerovanie. Príklady v tomto článku budeme používať presmerovanie 301.

    Príklady presmerovanie skript

    Tu sú najbežnejšie príklady presmerovanie .htaccess. Ak chcete použiť niektorý z nich, musíte otvoriť svoju .htaccess súbor vytvorený v ľubovoľnom textovom editore a vytvoriť potrebný kód vzorky. Získaný kód, modul rewrite (mod_rewrite) musí byť povolený na webovom serveri Apache. Aby ste to dosiahli, musíte vykonať množstvo akcií v závislosti od operačného systému. V systéme Windows postupujte nasledovne:
  • Vyhľadajte a otvorte súbor .http.conf. V adresári je nainštalovaný Apache.
  • Zálohovať http.conf, ak je to potrebné obnoviť súbor, ak urobíte nejaké chyby.
  • Vyhľadajte súbor riadku #LoadModule rewrite_module moduly /mod_rewrite.so a vložte ju (odstráňte znak #).
  • Nájdite blok značiek a nahraďte ho volbami All AllOverride All.
  • Nájdite všetky odkazy "AllowOverride None" a všade ich nahraďte "AllowOverride All".
  • Reštartujte webový server a prehliadač.
  • Stačí stačiť na Linuxe v termináli:sudo a2enmod rewrite Tento príkaz spustí modul alebo oznámi, že modul je už spustený. Ak chcete vykonať nové zmeny, reštartujte Apache s príkazom v termináli: sudo service apache2 restart
    Teraz môžeme začať upravovať súbor .htaccess a skúmať najbežnejšie smerovacie direktívy. 1. Presmerovanie z jednej stránky na inú .htaccess: Presmerovanie /retiredpage.html http://www.example.com/newpage.html 2. Forward zložky 301 (s jej obsahom): RedirectMatch 301 ^ /olddir /http: //www.yourdomain.com/newdir/3. .htaccess presmerovania sa odstraňovanie WWW: RewriteEngine na RewriteCond% {HTTP_HOST} ^ www.sitename.com $ [NC] RewriteRule ^ (. *) $ http://sitename.com/$ 1 [L, R = 301] 4. presmerovanie pridaním WWW :! RewriteEngine na RewriteCond% {HTTP_HOST} ^ www.samplehost.com $ [NC] RewriteRule ^ (. *) $ http://www.samplehost.com/$ 1 [L, R = 301] 5. presmerovanie do inej domény .htaccess (prenášanie celá strana): RedirectMatch 301 ^ $ http://www.yoursite.com 6-.htaccess presmerovanie HTML súborov do PHP-súbory (*). : RedirectMatch 301 html $ http (. *) :. //www.examplesite.com$1.php 7. Presmerovanie CE stránky s prídavkom HTTPS: (. *) RewriteCond% {HTTPS} mimo RewriteRule https: //% {SERVER_NAME} /$ 1 [R = trvalé, L] 8. nahradiť všetky písmená v URL-adresou malý: RewriteMap lc int: tolower Tento útržok kódu sa musí pridať do httpd.conf vášho webového servera. Potom otvorte súbor a urobiť .htaccess: RewriteEngine On RewriteCond% {REQUEST_URI} [A-Z] RewriteRule. $ {Lc:% {REQUEST_URI}} [R = 301, L] 9. Použitie regulárnych výrazov. Pravidlá presmerovania často obsahujú znaky, ktoré sú zložené v regulárnych výrazoch. Tento server presne vie, čo chcete zmeniť v URL. Pravidelné výrazy však môžu byť na prvý pohľad ťažko pochopiteľné. Tu sú niektoré spoločné prvky, ktoré môžete vidieť a používať vo svojej pravidlo prepísania adresy URLako aj konkrétne príklady ich použitia:
  • ^: začiatok náhradnej línie;
  • $: koniec náhradnej čiary.
  • Napríklad: regex ^ $ dáva signál složka1 nájsť a nahradiť text «Složka1» v odkaze.
  • . : akýkoľvek znak, ktorý nie je povolený (napríklad a, B, 3);
  • *: Označuje, že predchádzajúci text sa môže opakovať neurčito;
  • Napríklad :. Regex ^ nahrávania * $ Môže nahradiť text «uploads2009», «uploads2010» a tak ďalej; Regulárny výraz ^. * $ Znamená "nájsť čokoľvek". Je užitočné, ak neviete, čo používateľ môže vložiť do textu adresy URL.
  • (): Vyberte text, ktorý by mal byť použitý v pravidle ako hodnota premennej $ 1. Je to potrebné napríklad na spracovanie žiadostí o súbory, ktoré musia byť rovnaké pre starú i novú verziu adresy URL.
  • Chyba 404 Nenájdené

    Príležitostne sa vyskytli chyby v nastavení presmerovania. Pozrime sa na hlavné dôvody, prečo presmerovanie .htaccess nemusí fungovať. Chyba 404 nenájdu, ktorá sa vyskytuje počas presmerovania, je bežná. V tomto prípade dôkladne preskúmajte adresu URL vygenerovanú v paneli s adresou. Existuje požadovaný súbor v novom umiestnení na serveri špecifikovanom pravidlom presmerovania? Možno budete musieť skopírovať súbory zo starého umiestnenia na nové miesto alebo urobiť pravidlo presmerovania širšie, takže pri absencii požadovaného odkazu na súbor došlo k presmerovaniu na domovskú stránku webu. Ak je adresa URL práve nesprávna (napríkladhttp://example.com/folder1//file.html - berte na vedomie dve lomítka), musíte vidieť syntax pravidla presmerovania.

    Infinite URL, timeout alebo cyklus

    Ak je vytvorená presmerovanie URL adresa je príliš dlhá, príliš dlho, alebo sa stránka nenačíta, alebo Váš prehliadač dáva chybovú správu presmerovanie, ktoré by mohli odviesť nejakú kolíznych noriem so sebou. Musíte skontrolovať celý súbor .htaccess pre pravidlá presmerovania, ktoré sa môžu zhodovať s inými pravidlami. Môžete tiež skontrolovať súbory .htaccess v podadresároch. Všimnite si, že FTP nezobrazí súbory .htaccess, ak ste nepovolili možnosť zobrazenia skrytých súborov a priečinkov. Okrem toho môžete zahrnúť presmerovanie do stránok HTML a PHP. Skontrolujte stránku, ktorá spôsobuje problém pri interných presmerovaniach. Pridanie pravidiel presmerovania [L] môže v niektorých prípadoch pomôcť, pretože tento príkaz povoľuje serveru prestať sa pokúšať presmerovať adresu URL po uplatnení pravidla.

    Ako presmerovať bez .htaccess

    Napokon sa pozrime na to, ako presmerovať adresu URL bez úpravy súboru .htaccess pomocou virtuálneho hostiteľa Apache. Mimochodom, táto metóda je jednoduchšia ako navrhovanie pravidiel pre stránku .htaccess. Otvorte textového editora konfiguračný súbor vhost (httpd.conf), ktorý je zvyčajne umiestnený v adresári /etc /apache2 /sites /SITENAME. Vybraná vzorka súboru zobrazuje presmerovanie: ServerName www.mysite.com ServerAlias ​​www.mysite.comPresmerovanie /http://mysite.com Vyššie uvedená konfigurácia presmerováva všetky žiadosti o doménu bez WWW subdomény. Ak chcete presmerovať všetky žiadosti o doménu s WWW subdoménou, upravte konfiguráciu, ako je uvedené nižšie. ServerName anywebsite.com ServerAlias ​​anywebsite.com Redirect /http://www.anywebsite.com Reštartujte aplikáciu Apache a stránka sa začne správne presmerovávať. Vyššie uvedená metóda je najjednoduchšia a ľahšie sa implementuje ako presmerovanie z jednej stránky na druhú v htaccess.

    Súvisiace publikácie