Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Corz - Uvod u .htaccess..

 

.htaccess saveti i trikovi

<ifModule>
 pametne stvari ovde
</ifModule>
 

Uvod u .htaccess..

Ovaj rad u stalnom napretku predstavlja malo sakupljene mudrosti, stvari koje sam naučio o temi .htaccess hakovanja, komande koje sam uspešno koristio u prošlosti, na svakako podešenim serverima i što, u većini slučajeva, još uvek radim. Ipak, možda ćete morati da podesite neke primere da biste dobili željene rezultate, a pouzdan test server je moćan saveznik, poželjno slično podešen kao vaš “živi” server. Okej, pa da počnemo...

..win32 Apache ogledalo corz.org     
peecee Explorer view with invisible files
.htaccess fajlovi su nevidljivi

Postoji dobar razlog zašto nećete videti.htaccess fajlove na webu; skoro svaki web server na svetu konfigurisan je, podrazumevano, da ih ignoriše. Neki rade u svim operativnim sistemima. Uglavnom je to tačka "." na početku, vidite?

Аkо ne  morate da onemogućite funkcije nevidljivih fajlova u vašem operativnom sistemu ili da upotrebite uređivač teksta koji vam uvek omogućava da otvorite sakrivene fajlove, nešto kao bbedit na Mac platformi. U Windowsu, pokazivanje nevidljivih fajlova u exploreru trebalo bi da dozvoli svakom uređivaču teksta da ih otvori, a najboljim uređivačima da omogući i da ih sačuvaju**. Momci iz Linuxa znaju kako da ih pronađu i bez moje pomoći.
Mac Finder view with invisible files
isti folder, viđeno iz Mac OS X


Na obe slike operativni sistemi se navode da prikažu nevidljive fajlove. Ružno, ali ponekad neophodno. Takođe ćete morati da naredite vašem ftp klijentu da uradi isto.

Usput, u Windowsu je ScreenCap bolji nego u Mac-u, premeštene fajlove verovatno uređuje moj pametni 404 script.

 
** čak i Notepad može da čuva fajlove koji počinju tačkom, ako stavite duple znakove navoda oko imena fajla, tj. ".htaccess". Možete koristiti i svog ftp kiljenta da preimenujete fajlove koji počinju tačkom, i na vašem lokalnom sistemu fajlova; odlično radi u FileZilla.

 

Šta uopšte jesu .htaccess fajlovi?

Jednostavno rečeno, to su nevidljivi obični tekstualni fajlovi u kojima se mogu čuvati direktive servera. Direktive servera su sve ono što biste mogli da stavite u Apache konfiguracioni fajl (httpd.conf) ili čak php.ini**, ali za razliku od tih “master” fajlova direktive, ove .htaccess direktive primenjuju se samo na folder u kojem .htaccess fajl boravi, i na sve foldere unutar njega.

Ta sposobnost da se “posadi” .htaccess fajl u bilo koji direktorijum na našem sajtu, omogućava nam da postavimo veoma precizno stablo sa direktivama servera, u kojem svaki pod-folder nasleđuje osobine svog roditelja, dok istovremeno dodaje ili prelazi preko određenih direktiva sopstvenim.htaccess fajlom. Na primer, možete koristiti .htaccess da omogućite indeksaciju na vašem sajtu, i da onda negirate indeksaciju samo u nekim pod-direktorijumima ili da negirate izlistavanje listinga širom sajta, i omogućite indeksaciju u određenim direktorijumima. Jedan red u .htaccess fajlu u vašem korenu i celom vašem sajtu se menja. Od sada ću, verovatno, o osnovnom .htaccess u korenu vašeg web sajta govoriti kao o "master .htaccess fajlu", ili "glavnom" .htaccess fajlu.

Postoji mala taksa koja se plaća za sve ovo proveravanje .htaccess fajla, ali je zanemarljiva i videćete da je većinu vremena uključena i ionako ne postoji ništa što biste mogli da uradite povodom toga, pa hajde da je onda iskoristimo do kraja...

** Vaš glavni php.ini, to jest, osim ako ne radite u phpsuexec-u, u kojem slučaju bi direktive išle unutar zasebnih php.ini fajlova.
 

Da li je .htaccess omogućen?

Neobično je, ali moguće da .htaccess nije omogućen na vašem sajtu. Ako je vaš računar matični, onda je to lako srediti; otvorite httpd.conf u uređivaču teksta i locirajte ovaj <Directory> odeljak...
Vaš DocumentRoot моže biti drugačiji, naravno...
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/htdocs">
#

...pronađite red koji glasi...
AllowOverride None

...i promenite ga u...
AllowOverride All

Restartujte Apache. Sada će .htaccess raditi. Ovu promenu možete uraditi i unutar virtuelnog računara što bi inače bilo poželjnije.

Ako je vaš sajt umrežen negde drugde, proverite vaš kontrolni panel (Plesk. CPanel, etc.) da biste videli da li ga možete tamo omogućiti, a ako ne, pozovite vašeg mrežnog administratora. Možda oni to ne dozvoljavaju. U tom slučaju prebacite se na bolju mrežu.

 

Šta mogu da uradim sa .htaccess fajlovima?

Skoro svaka direktiva koju možete postaviti u httpd.conf fajl će savršeno funkcionisati i u .htaccess fajlu. Ne iznenađuje da je najčešća upotreba .htaccess-a da...
 

Kontrola (Omogući/Negiraj) Pristup..

.htaccess se najčešće koristi za ograničavanje ili negiranje pristupa zasebnim fajlovima i folderima. Tipičan primer bi bio “umetni” folder. Stranica vašeg sajta može da naziva ove uključene skripte kako god želi, ono što vi ne želite je da korisnici direktno pristupaju tim fajlovima, preko weba. U tom slučaju vi ćete pustiti .htaccess fajl u umetni folder sa sadržajem poput ovoga...

...NEMA ULAZ!
# no one gets in here!
deny from all

što će negirati SVE direktne pristupe webu (HTTP) SVIM fajlovima iz tog foldera (vaš skript im pristupa preko sistema fajlova). Možete biti i određeniji sa uslovima, na primer za ograničavanje pristupa određenom IP dometu evo zgodnog vrhunskog skupa pravila za lokalni test server...

..NEMA ULAZA van LAN-a!
# no nasty crackerpots in here!
Order Allow,Deny
Deny from All
Allow from 192.168.0.0/24
# this would do the same thing..
#Allow from 192.168.0

Obratite pažnju na direktivu Order (redosled) koja kontroliše redosled kojim Apache sređuje pristupna pravila (tzv. dikretive) prilikom izgradnje svoje tri faze. Sa Allow,Deny, prvo proveravate i primenjujete Allow (omogući) pravila, zatim Deny (negiraj) pravila, što negira sve ostalo. Sa Deny,Allow, prvo primenjujete Deny (negiraj) pravila, zatim Allow (omogući) pravila, što omogućava sve ostalo.

Ako razmislite o tome, Deny red gore je redundantan. To...
...NEMA ULAZA van LAN-a!
Order Allow,Deny
Allow from 192.168.0

je dovoljno da obezbedi lokalni server. S obzirom da Apache obrađuje drektive u tri grupe (po jednu u svakom prolazu), redosled obrade koji definiše Order direktiva, stvarni redosled pravila u vašem konfiguracionom fajlu je nevažan. To...

...NEMA ULAZA van LAN-a!
Allow from 192.168.0.0/24
Order Allow,Deny

je identično u operaciji sa prethodnim primerom.

U principu, ovakve vrste zahteva bi ionako odbile vaš zaštitni zid, ali na živom serveru (kao što su ponekada moji razvijeni duplikati) oni postaju beskorisni za filtriranje neželjenih IP blokova, poznatih rizika, mnogo stvari. Usput, u slučaju da niste primetili - Apache ignoriše redove koji počinju sa "#"; zgodno za komentare.

Ponekad ćete želeti da zabranite samo jedan IP, možda nekog upornog robota koji ne igra po pravilima...

post korisnički agent samo svaki peti zahtev. hmmm. zabrani IP...
# someone else giving the ruskies a bad name..
order allow,deny
deny from 83.222.23.219
allow from all

Primenjuju se uobičajena pravila za IP adrese, tako da možete koristiti delimična podudaranja, opsege i tako dalje. Kako god, korisnik dobija stranicu sa 403 “pristup negiran” u svom klijentskom softveru (obično pretraživač), što svakako prenosi poruku. To je verovatno prihvatljivo za većinu situacija, ali u delu dva pokazaću vam neke bolje načine da negirate pristup, kao i kako da negirate dosadne web napasnike, loše reference, nevešte hakere i drugo.

Još jedna konačna naponema o Allow i Deny pravilima za lokalne servere (ili bilo gde gde imate pristup glavnom httpd.conf, vhost.conf i takvim fajlovima). Ako je AllowOverride All (omogući prelazak preko svega) skup u konfiguracionom fajlu koji se obrađuje pre onog koji sadrži ta pravila (što obično tako bude), oni će preći preko svakog skupa pravila u prethodnom konfiguracionom fajlu.

Na primer, ako imate AllowOverride All i Deny All skup u vašoj VirtualHost konfiguraciji, i Allow All u vašem .htaccess, primenjuju se .htaccess pravila, što omogućava pristup sa svih adresa. Ako obrišete Allow pravilo u .htaccess, primeniće se pravila iz vaše VirtualHost konfiguracije. Ako obrišete ta pravila, primeniće se ona iz vaše glavne httpd.konfiguracije. pravila prelaze preko svega.
 

Namenska dokumentacija grešaka...

Verovatno treba kratko da pomenem da upravo u .htaccess-u većina ljudi konfiguriše svoju dokumentaciju grešaka. Obično pomoću nečega poput ovoga...

uobičajeno metod. “err” folder (sa namenskom stranicom) je u korenu
# custom error documents
ErrorDocument 401 /err/401.php
ErrorDocument 403 /err/403.php
ErrorDocument 404 /err/404.php
ErrorDocument 500 /err/500.php

Takođe možete odrediti spoljne URL-e, mada to može biti problematično i najbolje je to izbeći. Jedan brz i jednostavan metod jeste definisanje teksta u samoj direktivi, možete čak upotrebiti HTML (iako je tu verovatno ograničeno koliko HTML-a možete ugurati u jedan red). Zapamtite, za Apache 1; počnite sa ”, ali NEMOJTE završiti time. Za Apache 2 možete staviti i drugi navodnik na kraj, kao obično.

meri jednom, stavi navodnike dvaput...
# quick custom error "document"..
ErrorDocument 404 "<html><head><title>NO!</title></head><body><h2><tt>There is nothing here.. go away quickly!</tt></h2></body></html>

Korišćenje namenske dokumentacije grešaka je Veoma Dobra Ideja i pružiće vam drugu šansu kod vaših umalo-izgubljenih posetilaca. Preporučujem da preuzmete moje. Ali opet, ja bih..
 

Direktorijumi zaštićeni lozinkom

Sledeća najčešća upotreba naših .htaccess fajlova jeste omogućavanje pristupa samo određenim korisnicima ili grupi korisnika drugim rečima; folderi zaštićeni lozinkom, jednostavan mehanizam autorizacije može da izgleda nešto poput ovoga..

јеdnostavan primer .htaccess fajl za zaštitu lozinke:
AuthType Basic
AuthName "restricted area"
AuthUserFile /usr/local/var/www/html/.htpasses
require valid-user

Ovaj isti mehanizam možete koristiti i da ograničite samo određenu vrstu zahteva, takođe..

samo validni korisnici mogu da ostave POST ovde, svako može da DOBIJE, STAVI, itd.:
AuthType Basic
AuthName "restricted area"
AuthUserFile /usr/local/var/www/html/.htpasses
<Limit POST>
 require valid-user
</Limit>

Možete pronaći gomilu onlajn primera o tome kako podesiti autorizaciju pomoću .htaccess-a i sve dok imate stvarnog korisnika (ili ga sami kreirate, u tom slučaju je to “jimmy”) sa stvarnom lozinkom (bićete pitani za to, dvaput) u stvarnom fajlu lozinke (-c prenos će ga kreirati)...

htpasswd -c /usr/local/var/www/html/.htpasses jimmy

… gore navedeno će sasvim dobro raditi. htpasswd je alatka koja se besplatno dobija uz Apache, služi za pravljenje i ažuriranje fajlova lozinke, proverite. Windows verzija je ista; samo putanja fajla mora da se izmeni; bilo gde da želite da stavite fajl lozinke.

Napomena: аko Apache bin/ folder nije u vašoj PUTANJI, moraćete da stavite cd u taj direktorijum pre izvođenja komande. Još jedna napomena: Možete naizmenično koristiti obe kose crte u Apache/php u Windowsu, tako da bi to trebalo dobro da radi...

htpasswd -c c:/unix/usr/local/Apache2/conf/.htpasses jimmy

I relativne putanje su u redu; ako uzmemo da ste unutar bin/ direktorijuma našeg fiktivnog Apache install-a, sledeće će uraditi isto što i ono gore...

htpasswd -c ../conf/.htpasses jimmy

Imenovanje fajla lozinke sa .htpasses je navika još od vremena kada sam morao da čuvam taj fajl unutar samog web sajta, a s obzirom da su web serveri konfigurisani tako da ignorišu fajlove koji počinju sa .ht, i oni ostaju skriveni. Ako čuvate vaš fajl lozinke van web korena (bolja ideja), onda ga možete nazvati kako god želite, mada .ht_something naviku treba zadržati, čak i unutar web stabla, dovoljno je bezbedna za našu osnovnu svrhu...

Kada se jednom ulogujete u njih, možete pristupiti remote_user (udaljeni korisnik) varijablama okruženja i da sa time radite svašta...
remote_user varijabla je sada dostupna...
RewriteEngine on
RewriteCond %{remote_user} !^$ [nc]
RewriteRule ^(.*)$ /users/%{remote_user}/$1

Što je zgodna direktiva, korišćenje mod_rewrite; tema koju ću mnogo detaljnije razraditi u delu dva.
 

Nađite bolju zaštitu...

Gore navedeni primeri autentifikacije pretpostavljaju da vaš web server podržava „Basic“ http autorizaciju, koliko ja znam, svi oni podržavaju (to je u srcu Apacha). Problem je što pojedini pretraživači ne šalju lozinku više na taj način, a ja lično tražim da php pokriva potrebe moje autorizacije. Basic autorizacija ipak radi dobro, iako u stvari nije toliko sigurna – vaša lozinka putuje u običnom tekstu preko žice, nije baš pametno.

Ako imate php i tražite sigurnije sredstvo za logovanje, pogledajte pajamas. Besplatan je. Ako tražite sredstvo za preuzimanje sa zaštićenom lozinkom (i mnogo drugog pored toga), pogledajte moj distro mehanizam, takođe besplatno.
 

Greška 500...

Ako dodate nešto što server ne razume ili ne podržava, dobićete stranicu sa greškom 500, tzv. ...“server je zazviždao“. Čak i direktive koje savršeno rade na vašem test serveru kod kuće, mogu dramatično da omanu na vašem stvarnom sajtu. U stvari, ovo je sjajan način da se otkrije da li su .htaccess fajlovi omogućeni na vašem sajtu; napravite jedan, stavite nasumice bilo šta u njega, učitajte stranicu u taj folder i sačekajte grešku 500. Ako se ne pojavi, verovatno nisu omogućeni.

Ako jesu, potreban nam je način da sigurno izvedemo testiranje uživo, a da ne dovedemo ceo sajt u zastoj sa greškom 500.

Na sreću, na gotovo isti način na koji koristimo karticu, možemo napraviti uslovne direktive, stvari koje deluju samo ako su određeni uslovi istiniti. Od njih je najkorisniji uslov „ifModule“ (modul „ako“), koji ide nešto poput ovoga...

samo ako je PHP učitan, ova direktiva će proizvoditi dejstvo (prebacite 4 na 5 ako koristite php5)
<ifModule mod_php4.c>
 php_value default_charset utf-8
</ifModule>

...što se nalazi u vašem master .htaccess fajlu koji podešava kodiranje podrazumevanih karaktera na celom vašem sajtu na utf-8 (dobra ideja!), bar, sve što je proizveo PHP. Ako PHP** modula nije pokrenut na serveru, navedena .htaccess direktiva neće uraditi apsolutno ništa, Apache je jednostavno ignoriše. Isto kao što nas štiti od udara servera u grešku 500, ovo takođe čini naše .htaccess direktive malkice prenosivijim. Naravno, ako je vaša sintaksa pobrkana, nijedna količina „if-module-ing“-a neće sprečiti pojavu neke greške, što je još jedan razlog više da vežbate s ovim stvarima na lokalnom test serveru.

** **napomena: ako koristite php5, očigledno ćete umesto toga upotrebiti <ifModule mod_php5.c>.

 

Sjajne stvari koje možete raditi sa .htaccess-om...

Do sada smo tek zagrebali površinu. Osim autorizacije, i skromni .htaccess fajl se može za svašta upotrebiti. Ako ste ikada pogledali moju javnu arhivu primetili ste da se ti direktorijumi sasvim lako daju pretražiti, kao što su u stara vremena odrasli web matični računari shvatali kako da tu funkciju isključe! Red poput ovog...

vratite direktorijume!
Options +Indexes +MultiViews +FollowSymlinks

će ga sasvim sigurno ponovo uključiti. A ako imate mod_autoindex.c instaliran na vašem serveru (verovatno, da), možete dobiti i lepu, fensi indeksaciju...

pokaži mi te fajlove!
<IfModule mod_autoindex.c>
 IndexOptions FancyIndexing
</ifModule>

Što, pored toga što je urednije, omogućava korisnicima da kliknu na naslove i da, na primer, naruče listing po datumu ili veličini fajla ili bilo šta drugo. Sve je besplatno, ugrađeno u server, mi samo prebacujemo. Možete kontrolisati i određene parametre...

hajde da idemo do kraja!!
<IfModule mod_autoindex.c>
 IndexOptions FancyIndexing IconHeight=16 IconWidth=16
</ifModule>

Оstali parametri koje možete uključiti...

NameWidth=30
DescriptionWidth=30
IconsAreLinks SuppressHTMLPreamble (handy!)

Ne pominjem “XHTML” parametar u Apache2 jer on to još uvek nije! U svakom slučaju, izbacio sam na sajt jedan moj stari fensi indeksacioni .htaccess fajl za vas da se malo zabavite. Samo dodajte readme.html i krećete! napomena: odvih dana koristim jedinstveni direktorijum zaglavlja za sva indekosvanja...

HeaderName /inc/header.html

...i samo ubacite lokalne “readme” fajlove. Pogledajte primer i moju јаvnu arhivu zа više detalja.
 

Indeksacioni fajlovi u namenskim direktorijumima

Dok sam kod tog, treba da pomenem i da se .htaccess nalazi tamo gde možete definisati koje fajlove želite da koristite kao indeksacione, to jest, ako korisnik zahteva /foo/, Apache će izbaciti /foo/index.html, ili koji god fajl vi odredite.

Možete definisati i višestruke fajlove i Apache će potražiti svaki po redu i prikazati prvi koji nađe. To je generalno podešeno otprilike ovako...
DirectoryIndex index.html index.php index.htm


Zaista vredi izviđati Apache dokumentaciju jer ćete ponekad pronaći kontrolu za stvari za koje ste smatrali da se ne mogu kontrolisati, stvarajući tako nove mogućnosti i bolje opcije za vaš web sajt. Moje iskustvo sa magičnim "LAMP"-om (Linux-Apache-MySQL-PHP) je bilo... ”Ono što možete zamisliti, možete i uraditi”. Zamenite “Linux” za bilo koji pristojan operativni sistem - “AMP” delovi rade na većini.

Okej, sada imamo lepe fensi direktorijume, od kojih su neki zaštićeni lozinkom. Ako ne pazite, vaš sajt će postati popularan, što znači propusni opseg...
 

Uštedite na propusnom opsegu pomoću .htaccess-a!

Аko plaćate za propusni opseg, ovaj malecki red vam može uštedeti veliki novac..

uštedi mi novac! i pomozi internet!
<ifModule mod_php4.c>
 php_value zlib.output_compression 16386
</ifModule>

Sve što radi je da omogućava ugrađenu transparentnu zlib biblioteku PHP-a za kompresiju. To će u jednom zamahu prepoloviti vaš propusni opseg, i još više od toga. Naravno, funkcioniše samo sa podacima koje proizvede PHP modul, ali ako kreirate vaše stranice imajući to na umu, možete upotrebiti php eho izjavu, ili još bolje, php “uključuje” za vaš obični html unos i jednostavno sve kompresujete! Zapamtite, kao pokrenete phpsuexec, moraćete da stavite php direktive u lokalni php.ini fajl, ne u .htaccess. Vidite ovde za više detalja.
 

Sakrij i negiraj fajlove...

Da li se sećate da sam pomenuo da je svaki fajl koji počinje sa .ht nevidljiv?.. “skoro svaki web server na svetu konfigurisan je da ih ignoriše, podrazumevano”, a to je, u stvari, zbog toga što .ht_nešto fajlovi generalno imaju serverske direktive i lozinke i druge stvari u njima i većina servera će imati nešto poput toga u svojoj osnovnoj konfiguraciji...

Standardno podešavanje...
<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

koje nalaže serveru da negira pristup svakom fajlu koji počinje sa .ht, efikasno štiteći naše .htaccess i druge fajlove. Tačka “.” na početku sprečava ih da se prikažu u indesku, a .ht sprečava da im se priđe. Ova verzija...

ignoriše ono što želite
<Files ~ "^.*\.([Ll][Oo][Gg])">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

i govori serveru da negira pristup *.log fajlovima. Možete ubaciti fajlove različitih tipova u svako pravilo, odvajajući ih linijom “l” i možete ubaciti višestruke blokove u vaš .htaccess fajl. Ja mislim da je zgodno smestiti sve fajlove koji počinju tačkom u jedan, a fajlove koji su negirali ekstenzije u drugi, nešto poput ovoga...

cela partija
# deny all .htaccess, .DS_Store $h and ._* (resource fork) files
<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss]|[_])">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

# deny access to all .log and .comment files
<Files ~ "^.*\.([Ll][Oo][Gg]|[cC][oO][mM][mM][eE][nN][tT])">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

će pokriti sve ._* resource razgranate fajlove, .DS_Store fajlove (koje Mac Finder stvara posvuda) *.log fajlove, *.comment fajlove i, naravno, naše .ht* fajlove. Možete dodati bilo koju vrstu fajla koju želite da zaštitite od direktnog pristupa. Mislim da je sada jasno zašto se fajl naziva “.htaccess”.
 

<FilesMatch>

Ovih dana upotreba <FilesMatch> je poželjnija od upotrebe <Files>, uglavnom zbog toga što možete koristiti regularne izraze u uslovima (vrlo zgodno) i proizvesti čist, čitljiviji kod. Evo primera koji koristim za moj php generisani opis stilova...

raščlani file.css i file.style sa php mehanizmom...
# handler for phpsuexec..
<FilesMatch "\.(css|style)$">
 SetHandler application/x-httpd-php
</FilesMatch>

Svim fajlovima sa *.css ili *.style ekstenzijom sada će rukovoditi php umesto da ga jednostavno izvede Apache. I zato što možete koristiti regexp, možete raditi stvari poput , što je zgodno. Sve izjave na koje naiđete mogu se pogodno zameniti sa izjavama. Dobro je znati.
 

Više toga...

Na kraju mog .htaccess fajla izgleda da uvek postoji odeljak “stvari” - razne komande, većinom php indikatori i prekidači; tako da izgleda logično završiti stranicu malenom kolekcijom takvih stvari...

php indikatori, prekidači i ostale stvari...
# let's enable php (non-cgi, aka. 'module') for EVERYTHING..'
AddType application/x-httpd-php5 .htm .html .php .blog .comment .inc

# better yet..
AddHandler php5-script .php

# legacy php4 version..'
AddType application/x-httpd-php .htm .html .php .blog .comment .inc

# don't even think about setting this to 'on'
php_value register_globals off

# no session id's in the URL PULEEZE!
php_value session.use_trans_sid 0
# should be the same as..
php_flag session.use_trans_sid off
# using both should also work fine!

# php error logs..
php_flag display_errors off
php_flag log_errors on
php_value track_errors on
php_value error_log /home/cor/errors/phperr.log

# if you like to collect interesting php system shell access and web hack scripts
# get yourself a SECURE upload facility, and just let the script-kiddies come żbr> # in no time you will have a huge selection of fascinating code. If you want folk to
# also upload zips and stuff, you might want to increase the upload capacities..
php_value upload_max_filesize 12M
php_value post_max_size 12M

# php 5 only, afaik. handy when your server isn't where YOU are.
php_value date.timezone Europe/Aberdeen
# actually, Europe/Aberdeen isn't a valid php timezone, so that won't work.
# I recommend you check the php manual for this function, because many crazy places ARE!

Napomena: Za većinu indikatora koje sam testirao možete upotrebiti on/off (uključeno/isključeno)i true/false (istinito/lažno) naizmenično, kao i 0/1; takođe, php_value (vrednost) i php_flag (idikator) mogu se zameniti dok će stvari nastaviti očekivano da funkcionišu! Pretpostavljam, logično, da promenljive uvek treba da budu php_flag, i vrednosti, php_value; ali, suvišno je reći, ako neki php erm, direktiva ne radi, to bi sve bile odlične stvari da se sa njima izgubi vreme!

Naravno, php priručnik sve objašnjava. Suština je da će i jedno i drugo dobro raditi, ali ako upotrebite pogrešan tip u recimo .htaccess-u, podesite php_flag uz pomoć php_value, php ini_get() komanda će se, na primer, vratiti kao istinita, čak iako ste podesili vrednost na off, jer to očitava off vrednost kao niz, što se, naravno, svodi na ne-nulu, tj. 1 ili “istinito”. Ako nemate poverenja u get_ini() ili slično, nije problem, iako je očito bolje podesiti to od samog početka. Usput, jedna od gornjih vrednosti je neispravno podešena. Da li uočavate?

Preko većine php podešavanja možete prepisati unutar vašeg stvarnog skripta, ali je ne mislim da je zgodno moći podesiti podrazumevane foldere, ili ceo sajt, pomoću -htaccess-a.
 

Prepuštam vama...

To bi trebalo da vam bude dovoljno za početak rada sa .htaccess-om, što je prilično lako kada znate kako. Ako zaista želite da uposlite mozak, pratite link u nastavku i deo dva serije, u kojem obrađujem tajanstvene misterije URL prepisivanja.

 
;o) Cor
 
 
 
Published (Last edited): 10-02-2013 , source: http://corz.org/serv/tricks/htaccess.php