Karakter boyutu :
 .htaccess kullanımı ve ipuçları

htaccess dosyasında birkaç değişiklik yaparak Apache üzerindekisitenizde gizli klasörler oluşturabileceğinizi, hotlinking’iengelleyebileceğinizi, hatta zararlı bot’lardan korunabileceğinizibiliyor muydunuz? Bu yazı Apache .htaccess tweaking tutorialmakalesinin Türkçe çevirisi olup bazı eklemeler ve değişiklikleriçerebilir.
Not: .htaccess (Hypertext Access), Apache’nin klasördüzeyinde ayarlara izin veren, genel ayar dosyasındaki direktifleriözelleştirebilen dosyadır.

1. Klasörlere Erişim = Folder Access
Birklasöre tüm erişimi engellemek istiyorsanız (mesela program kaynakkodlarınızı barındıran bir klasörünüz olabilir; bu durumda klasöreinternetten değil, yalnızca dosya sisteminden erişmeyiisteyebilirsiniz) klasörün içinde .htaccess dosyası oluşturup içine

#deny all access
deny from all
yazmanız yeterli. Eğer bu klasöre yalnızca belirlediğiniz ip adresiyle veya ip bloğu tarafından erişilmesini istiyorsanız

#deny all access
deny from all
allow from 10.0.0.1 # tek ip adresi
allow from 192.168.0.0/24 # ip bloğu
yazmanız yeterli. Tek bir dosya için erişimi engellemek için ise yazmanız gereken şu:


Order allow,deny
Deny from all

2. Klasör Listelemek = Folder List
Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor:

Options +Indexes +MultiViews +FollowSymlinks

IndexOptions FancyIndexing

Bununiçin sunucunuzda autoindex modülünün yüklü olması gerekiyor. Klasördekiöntanımlı listelemeyi iptal etmek için ise şu satır yeterli:

IndexIgnore *

3. Sıkıştırma = Bandwidth Compress
Sitenizinbant genişliğini (bandwidth) korumak için bir php özelliği olan verisıkıştırmayı kullanabilirsiniz. .htaccess dosyasına şunu eklemelisiniz:


php_value zlib.output_compression 16386

4. Dosyaları Gizlemek = Folder Hidden
Belirlidosyalara erişimi engellemek için Files direktifiyle birlikte RegularExpression kullanabilirsiniz. Örnek olarak konfigürasyon dosyalarına,robot.txt’e veya log’lara erişimi engellemek isteyebilirsiniz.Aşağıdaki örnek klasördeki .ht ile başlayan dosyalara erişimiengellemektedir.


Order allow,deny
Deny from all
Satisfy All

5. Özel HTTP 404 Hata Sayfası= 404 Error Page
Ziyaretçileriniz“404: Sayfa Bulunamadı” hatasıyla karşılaşacaklarında sizin istediğinizbir dosyaya yönlenmelerini sağlamak için şu kodu kullanın:

ErrorDocument 404 /errors/notfound.html
Buşekilde diğer hata kodlarını da özelleştirebilirsiniz. Dikkat! InternetExplorer 512 bayttan küçük hata sayfalarıyla karşılaştığında, MSNsearch gibi bağlantıların bulunduğu kendi hata sayfasını kullanıcıyagöstermektedir. Belirttiğiniz hata sayfasının 512B’tan büyük olduğunaemin olun.

6. Hotlinking’i Engellemek = Hotlink Block
Hotlinkingbasitçe sizin sitenizdeki bir resmi, videoyu başka bir siteningöstermesine denir. Bu durumda olan sizin bandwidth’inize olur. Örnekolarak sitenizin dışında kullanılan bazı dosyalara erişimi engelleyipnohotlink.gif adında bir resim dosyası gönderen şu koda bakalım:


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?siteniz\.com[NC]
RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.siteniz.com/img/nohotlink.gif [R,NC,L]

Kodbasitçe siteniz.com dışından çağırılan zip, mp3 ve bazı video dosyalarıyerine nohotlink.gif dosyasını gösteriyor. Dikkat! Eğer resimhotlink’lerini engellerseniz site dışından istenen tüm resimleriengelleyeceksiniz. Bu durumda mesela feedburner gibi bir hizmetkullanıyorsanız bu hizmet için kodunuzu değiştirmeniz gerekecektir.

7. Kötü Bot’ları Engellemek = Bot Block
Sitenizi kullanan veya tamamen indirmek isteyen bot’lara karşı .htaccess dosyasını kullanabilirsiniz:


RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]

8. no-www Desteği= No-WWW Aid
Siz de sitelerde www subdomain’inin kullanılmasına karşıysanız bu kod işinizi görecektir:


Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.example\.com[nc]
RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]

9. Hangi Dili Kullandığınızı Saklamak = Language Hidden
Dosyalarınızınuzantılarını değiştirip .htaccess dosyasına bir kural ekleyerek hangidili kullandığınızı ziyaretçilerinizden saklayabilirsiniz. Aşağıdakiörnek sayesinde .133t uzantılı dosyalar PHP dosyaları gibi işlenecektir.

# Make PHP code look like unknown types
AddType application/x-httpd-php .133t

10. Değişik İpuçları
.htaccess dosyasını olabildiğince küçük tutun. çünkü her dosya isteğinde sunucu tarafından kontrol edilirler.
.htaccess dosyasını düzenli tutun. Kurallar arttıkça dosyayı anlaması zorlaşacaktır. # kullanarak her bölüme açıklama yazın.
URL’iyeniden tanımladığınız, bir önceki sayfaya yönlenen kurallarda(Nohotlink örneği gibi) [L] özelliğini ekleyin. Bu sunucuya, başka birkuralı uygulamamasını belirtir.
.htaccess kurallarının altklasörlerde de geçerli olduğunu, alt klasördeki .htaccess kuralının iseüzerindeki kuralları değiştirebileceğini düşünün.

11. .htpasswd ile Şifre Koruması = .htpasswd Password Protection
İstediğiniz dosya veya klasörlere şifre eklemek için şu adımları takip edin:

Şifrelemek istediğiniz klasörde .htpasswd dosyası oluşturun.
Dosyaiçeriği kullanıcıadı:şifre tarzındadır. Kullanıcı adı düz metindir.Şifrenin ise şifrelenmiş olması gerekir. Şifrenizi almak için şu adresikullanabilirsiniz.
Dosyayı kendi bilgisayarınızda oluşturup sunucuya upload ettiyseniz ASCII mode kullandığınızdan emin olun.
Şimdi .htaccess dosyanızı düzenleyin. Kural, düzenlediğiniz dosyanın bulunduğu klasörde ve alt klasörlerinde geçerli olacaktır:

AuthUserFile /home/pathto/.htpasswd
AuthType Basic
AuthName “My Secret Folder”


require valid-user


Kuralı tek dosya için oluşturmak istiyorsanız kodu direktifi içinde kullanmalısınız.

.htaccess dosyanızın erişilebilir olmadığına emin olun. (bkz. 1. başlık)

12. Öntanımlı Sayfayı Değiştirmek = Page Change
Öntanımlı sayfa bilgisini aşağıdaki şekilde, sıraya dikkat ederek değiştirebilirsiniz:

DirectoryIndex home.html index.htm index.html index.php
 
FacebookBloggerDiggRedditMyspaceWordpressTwitter14 Ağustos 2008 Perşembe - For Developer - Yorum Yaz/Oku (0)- #

Henüz kimse bu konuda bişey dememiş.
Senin söyleyeceklerin varsa form aşağıda.

İsim :
E-Posta/Web :
Yorumunuz :
 
Güvenlik Kodu
Sizi Hatırlayalım mı?