Bu yazı ilk olarak tarihinde yayımlanmış, eski sitemizden aktarılmıştır. İçerik ilk yayımlandığı dönemi yansıtabilir. Kampanyalar, fiyatlar, ürün özellikleri, görevler ve servislerin durumu güncel teklif veya garanti değildir; ayrıca güncellik kontrolü gerektirir.
Hypertext Access anlamına gelen ve apache gibi web sunucularında yapılandırma işlemlerinin kurallar ile belirtildiği yapılandırma dosyasıdır . Bu dosya ile internet sitenizin performansını arttırmak , optimize etmek , güvenliğini sağlamak gibi bir çok işlemi yapabilirsiniz.
Dosyasını kimin "bulduğu" tam olarak bilinmemekle birlikte, bu dosyanın Apache web sunucusunun ilk sürümlerinde ortaya çıktığı biliniyor.
Apache'nin ilk sürümü 1995 yılında piyasaya sürüldü ve .htaccess dosyaları o zamandan beri Apache'nin temel bir özelliği olmuştur.
.htaccess dosyasının ilk olarak kim tarafından tasarlandığı veya geliştirildiği konusunda net bir bilgi bulunmamaktadır.
htaccess dosyası linux tabanlı veya php desteği sunan sunucularda site dosyalarınızı yüklediğiniz dizinde bulunmaktadır. Görüntüleyemediğiniz durumlarda "gizli dosya ve klasörleri göster" seçeneğini cpanelden veya ftp istemcinizden aktif edebilirsiniz . Ayrıca sitenizin alt klasörlerinede .htaccess dosyaları oluşturarak ana dizininizden farklı kurallar yazabilirsiniz.
L: Bu sembolden önce yazılan kuralların sonrakilere uygulanmamasını sağlar. Ayırıcı niteliindedir.
R: Parametresi kullanıldığında , erişim sağlayan kullanıcının browser url si değişir . Kullanılmadığı durumda ise işlemler kullanıcıya yansıtılmadan arka planda yapılır.
NC: (No Case) Büyük küçük hart duyarszlığı sağlar.
QSA: Bu parametre url yönlendirmelere eklendiğinde yönlendirmeye get parametrelerinde dahil eder.
[OR]: Veya anlamı katar.
deny from all
Tüm dosyalara erişim engeller
<Files a.php>
Order allowideny
Deny from all
a.php dosyasını spesifik olarak engeller.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /pages.php?page=$1 [L,QSA]
Yukarıdaki .htaccess kod bloğu
siteadresiniz.com/pages.php?=sayfaadı
gibi talepleri
siteadresiniz.com/sayfaadı olarak değiştirir.
İnternet sitenizin dosyalarının farklı bir internet sitesi tarafından çekilmesini (crawl) edilmesini engellemek istiorsanız hotlink engelleme metodunu kullanabilirsiniz.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?siteadresiniz.com.*$ [NC]
RewriteRule .(gif|jpg|png|css)$ – [F]
Aşağıdaki örnekte hostturka ile başlayan tüm dosyaları engellemiş oluyoruz.
< Files ~ “^.hostturka” > Order allow,deny Deny from all Satisfy All
Aşağıdaki kod bloğu ile sitenizde bulunamayan sayfaları bulunamadi.html sayfasına yönlendiriyoruz.
RewriteEngine On ErrorDocument 404 /bulunamadi.html
Aşağıdaki kod bloğu .htaccess in bulunduğu klasördeki tüm dosyalara erişimi kaldırabiliriz. Bu yöntemi herhangi bir dosyaya sadece dosya sisteminden erişilmesii istediğinizde kullanabilirsiniz.
#deny all access deny from all
Veya aşağıdaki kod bloğu ile dosya erişimini bir ip adresine veya ip bloğuna açabilirsiniz.
#deny all access deny from all allow from 10.79.0.132 # tek ip adresi allow from 10.79.0.0/24 # ip bloğu
Bazı durumlarda sitenize erişen zararlı botlar sitenizin performansının düşmesine ve kaynaklarınızın israf olmasına neden olur bu gibi durumlarda htaccess ile zararlı botları engelleyebilirsiniz. Aşağıda bizim tespid ettiğimiz zararlı botların listesini ve engelleme komutlarını bulabilirsiniz.
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} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja [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} ^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} ^pcBrowser [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} ^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]
www.siteadresiniz.com ve siteadresiniz.com domainleri her ne kadar aynı görünse de seo açısından faklıdır .
Burada www bir subdomain olarak görünür. Sitenizi işaret eden linklerin bir kısmı www.siteniz.com diğer bir kısmının siteniz.com u işaret ettiği durumda iki ayrı domaininiz linklenmiş gibi olup sitenize yaptığınız seo çalışması ikiye bölünmüş olmaktadır. Bu durumdan kurtulmak için aşağıdaki htaccess kodunu kullanarak sitenizin www li adresini www size yönlendirip 301 yönlendirmesi ile www sitenizi işaret eden linklerin gücünü www siz domaininize aktarabilirsiniz.
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www.siteniz.com[nc]
RewriteRule ^(.*)$ http://siteniz.com/$1 [r=301,nc]
Sitenizin https li tek etki alanından yayın yapması için aşağıdaki kdu kullanabilirisniz.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Seo için önemli bir özellik expire header oluşturmak için aşağıdaki htaccess kodlarını kullanabilirsiniz . Sitenizin performansına önemli katkısı olacaktır .
< FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|webp|js|css|swf|x-html|css|xml|js|woff|woff2|ttf|svg|eot)(.gz)?$" > < IfModule mod_expires.c> AddType application/font-woff2 .woff2 ExpiresActive On ExpiresDefault A0 ExpiresByType image/webp A2592000 ExpiresByType image/gif A2592000 ExpiresByType image/png A2592000 ExpiresByType image/jpg A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/ico A2592000 ExpiresByType image/svg+xml A2592000 ExpiresByType text/css A2592000 ExpiresByType text/javascript A2592000 ExpiresByType application/javascript A2592000 ExpiresByType application/x-javascript A2592000 ExpiresByType application/font-woff2 A2592000 Header set Expires "max-age=2592000, public" Header unset ETag Header set Connection keep-alive FileETag None