Manualai.lt Forumas
		HTML, CSS ir JavaScript diskusijos => HTML, CSS ir JavaScript - Kita => Temą pradėjo: Rokas Bakūnas  2010-01-19 00:42:10 am
		
			
			- 
				Iskart parasau, pac nerasiau. tiesiog teksta pateikiu ir visus bb code sudedu..
 
 Tikiuos pravers.. nes forume ner panasios info
 
 Įžanga
 
 Šis straipsnis skirtas tiems kurie bando perprasti .htaccess veikimą. Straipsnį rašau todėl kad beieškodamas pats keleto naudingų .htaccess funkcijų susidūriau su gan nemaža problema tiek užsienyje (Labai retai, bet pasitaikydavo), tiek Lietuvoje (praktiškai informacijos neradau) kad .htaccess aprašomas kaip koks Velnias ir labai nenuosekliai, kas ką daro ir kas už ką atsakingas šiame faile. Jeigu ir pavykdavo rasti informacijos apie norimą funkciją paprasčiausiai būdavo per daug informacijos kaip vienai funkcijai, ir nebuvo laiko visko skaityti. Taigi nusprendžiau pasidalinti .htaccess failo funkcijomis, jo veikimu. Manau šis straipsnis pravers ne vienam.
 
 Katalogų priėjimo valdymas
 
 Kartais turbūt norite išjungti visišką priėjimą prie katalogų (kaip pavyzdys, jūs turite direktoriją su programiniais failais kurie įterpiami į pagrindini failą. Tokiu atveju tik pagrindinis failas turi turėti priėjimą prie programinių failų, bet nė vienas kitas negali jų atidaryti.) Taigi, tokiu atveju susikurkite .htaccess failą kataloge kurį norite apsaugoti, ir įkelkite tai:
 
 #Uždraudžiame visus priėjimus
 deny from all
 Jigu norite leisti priėjimą tam tikram IP, įrašykite tai:
 deny from all
 allow from 127.0.0.1
 Taip pat galite pridėti ir IP sritį. Tereikia jums pakeisti:
 allow from 127.0.0.1
 į žemiau pateiktą kodo dalį:
 allow from 127.0.0.1/24
 Taipogi galite uždrausti failus ir nurodę juos tiesiogiai kurių nerodyti:
 <Files privatus.html>
 Order allow,deny
 Deny from all
 </Files>
 Katalogų naršymas
 
 Jeigu norite, kad po katalogus būtų lengviau naršyti, tuomet jums reikėtų pridėti žemiau pateiktą eilutę į .htaccess failą:
 Options +Indexes +MultiViews +FollowSymlinks
 Žemiau pateikta eilutė reikalinga patikrinimui ar yra įdiegtas atitinkamas Apache modulis jūsų Web serveryje.
 <ifmodule mod_autoindex.c>
 IndexOptions FancyIndexing
 </ifmodule>
 Taip pat galite neleisti katalogų/failų indeksavimą:
 IndexIgnore *
 Suspaudimo įjungimas
 
 Jūs galite įjungti PHP duomenų suspaudimą taip išsaugodami dalį srauto:
 <ifModule mod_php4.c>
 php_value zlib.output_compression 16386
 </ifModule>
 Failų paslėpimas
 
 Uždrausti priėjimą tam tikriems failams jūs galite naudoti reguliarius išsireiškimus (Regular expression) taip uždrauzdami priėjimą prie failo kurio galūnė prasideda .ht
 Jūs galite modifikuoti uždrausdami nustatytus failus (tarkim konfigūracijos failus, robots.txt, log'ų failus ir visa kita ką tik norėsite)
 <Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
 </Files>
 Nuosavas 404 klaidos pranešimas
 
 Jeigu norite pakeisti standartišką HTTP 404 klaidos puslapį, galite jį persiųsti į kitą failą su pateiktu žemiau kodu:
 ErrorDocument 404 /klaidos/nerasta.html
 Blokuojame botus
 
 Manau kartais norisi užblokuoti botus, vorus kurie renka informaciją iš jūsų svetainės negeriems dalykams kaip pavyzdys: vartotojo paštas renkamas Spam'ui. Manau tokiu būdų reikėtų uždrausti visus galimus botus kad negalėtų prisijungti prie jūsų svetainės. Pilnas .htaccess nelegalių robotų sąrašąs:
 
 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} ^NPBot [NC,OR]
 RewriteCond %{REMOTE_ADDR} ^12.148.196.(12[8-9]|1[3-9][0-9]|2[0-4][0-9]|25[0-5])$ [NC,OR]
 RewriteCond %{REMOTE_ADDR} ^12.148.209.(19[2-9]|2[0-4][0-9]|25[0-5])$ [NC,OR]
 RewriteCond %{REMOTE_ADDR} ^63.148.99.2(2[4-9]|[3-4][0-9]|5[0-5])$ [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebEMailExtractor [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NICErsPRO [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailReaper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailMagnet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebPix [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Mozilla/2.0\ \(compatible;\ NEWT\ ActiveX;\ Win32\) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebCollector [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^psbot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^PICgrabber [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^mister\ pix [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebZIP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^x-Tractor [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebMiner [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebStripper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebSnake [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebReaper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Webdup [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebCopier [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebBandit [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^teleport [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SiteSucker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SiteCopy [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ninja [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^MSIECrawler [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^JoBo [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^HTTrack [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Extreme\ Picture\ Finder [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^CherryPicker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^TurnitinBot [NC,OR]
 RewriteCond %{REMOTE_ADDR} ^64.140.49.6([6-9])$ [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ClariaBot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Diamond [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Custo [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^DISCo [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^eCatch [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^FlashGet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GetRight [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GrabNet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Grafula [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^HMView [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Indy\ Library [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^InterGET [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^JetCar [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^larbin [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Navroad [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NearSite [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetAnts [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetSpider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetZIP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Octopus [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^pavuk [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^RealDownload [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ReGet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SuperBot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Surfbot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebAuto [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebFetch [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebSauger [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Wget [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Widow [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Zeus [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^[a-z]+$ [NC]
 RewriteCond %{HTTP_USER_AGENT} ^Gigabot/2.0 [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Gigabot/2.0/gigablast.com/spider.html [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^LinkWalker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SurveyBot/2.3 [NC,OR]
 
 RewriteRule ^.* - [F,L]
 Nereikalingas WWW
 
 Jeigu norite atlikti tai, naudokite paprastą perrašymo sintaksę:
 <IfModule mod_rewrite.c>
 Options +FollowSymlinks
 RewriteEngine on
 RewriteCond %{http_host} ^www\.example\.com[nc]
 RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]
 </IfModule>
 Pervadiname failų pavadinimus
 
 Jūs galite padidinti savo saugumą bent maža dalimi pakeisdami savo programinių failų galūnes. Taigi lankytojai nežinos kokią programavimo kalbą jūs naudojate:
 # Pakeiskime PHP tipą į nežinomą
 AddType application/x-httpd-php .133t
Taigi šiuo atveju .133t failai bus interpretuojami kaip PHP failai. Jūs turite pakeisti savo esamų failų galūnes į naująją galūnę.
 
 Slaptažodžio apsauga su .htpasswd
 
 Tai naudinga jei norite apsaugoti slaptažodžiu kelis savo failus/katalogus.
 - Sukurkite .htpasswd failą kataloge kurį norite apsaugoti.
- Failas turi turėti prisijungimo duomenis formoje vartotojas:slaptažodis.Varotojas paprastas tekstas. Slaptažodis turi būti užkoduotas priešingu atveju jis neveiks! Naudokite šį įrankį sudaryti kintamiesiems.
- Jeigu Jūs sukūrėte failą savo lokaliam kompiuteryje, įsitikinkite, jog failas nusiųstas į Web serverį ASCII rėžimu..
- Dabar galite modifikuoti savo .htpasswd failą. Identifikacija bus prašoma kataloge kur jūs įkėlėt šį failą ir bus prašoma sub-direktorijose:
 
       AuthUserFile /home/www/.htpasswd
 AuthType Basic
 AuthName "Mano saugus katalogas"
 
 <LIMIT GET POST>
 require valid-user
 </LIMIT>
 Jūs taip pat galite nustatyti slaptažodį vienam failui panaudodami <Files> direktyvą.
 
 - Įsitikinkite kad .htaccess nuo žiūrėjimo yra apsaugotas.
 
 Įjungiamas SSI
 
 Naudokite pateiktą instrukciją norėdami įjungti SSI:
 AddType text/html .html
 AddType text/html .shtml
 AddHandler server-parsed .html
 AddHandler server-parsed .shtml
 Pakeičiamas pagrindinis failas
 
 Kaip žinia daugumoje serverių būna nustatytas pagal nutylėjimą index . galūnė failas. Jūs galite pakeisti šį dalyką prirašydami tik vieną eilutę (Primename, eiliškumas labai SVARBU!)
 DirectoryIndex home.html index.htm index.html index.php
 Kalbos tikrinimo direktyva
 
 Ši direktyva gali būti nadinga automatiniam kalbos klaidų taisymui.
 <IfModule mod_speling.c>
 CheckSpelling On
 </IfModule>
- 
				niiiice ;o
			
- 
				Ir čia aprašyta tik maža dalelė visų .htaccess galimybių :) jėga.
			
- 
				Pakeičiamas pagrindinis failas <<
 
 kada naudoti pvz: turim nustatyta toki eiliskuma: index.html, index.php tai tada darot pvz psl su php, sukuriat tuo tarpu index.html failiuka ir kai zmogus atidaro jusu dar nepadaryta psl, jam uzkrauna index.html, kuriame parasyta "puslapis daromas", tuo tarpu darot index.php, kuriame meto klaidas ir pns :) tik aisku jei yra kazkokiu dalyku, del ko to index.php nenorit kad leistu atidaryti zmonems, tai nereiktu naudoti sio metodo, nes betkas prirasys index.php ir jam atidarys ta index.php ;)
- 
				tai persivardini i ta faila kuri nori kad vartotojui atidarytu.
			
- 
				Labai šaunus straipsnis. :)
			
- 
				Turiu tokį .htaccess kodą - http://codepaste.net/1bv7bb (http://codepaste.net/1bv7bb) LAMP'e, bet bandant eiti į puslapį gaunu tokį error'ą:
 
 Internal Server Error
 
 The server encountered an internal error or misconfiguration and was unable to complete your request.
 
 Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
 More information about this error may be available in the server error log.
 Apache/2.2.16 (Ubuntu) Server at localhost Port 80
 
 
 
 any ideas?
- 
				mod_rewrite paleistas? apache serve
			
- 
				Aha, susitvarkiau jau :) pažiūrėjau apache errors log ir pamačiau, kad viena eilutė .htaccess bloga :) 
 
 LAMP error.log - terminale: gedit /var/log/apache2/error.log
 
 p.s. vietoj gedit rašot savo norimą redaktorių ;]
- 
				na tai gerai, kad jau veikia :)
			
- 
				Galima padaryti taip, kad einant i / visus zmones nukreiptu i v1 direktorija, o jeigu eini pvz /direktorija nukreipia i ta direktorija?
			
- 
				O dėkui labai, kaiptik ieškojau phpbb forumui norėjau padaryti, kad į acp patekti galėtų tik su mano IP. 
			
- 
				Gerai padirbejai