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 | |
| 14 Ağustos 2008 Perşembe - For Developer - Yorum Yaz/Oku (0)- # | |





.htaccess kullanımı ve ipuçları
Kategoriler
Yazılarım
Linkler






