1. Ana Sayfa
  2. Webmaster
  3. 5 Soruda .htaccess Kullanımı ve Kodları
Trendlerdeki Yazı

5 Soruda .htaccess Kullanımı ve Kodları

Hotlink koruması mı istiyorsunuz? Hata sayfalarını özelleştirmek niyetinde misiniz? Domain yönlendirmesi konusunda yardıma mı ihtiyacınız var?

5 Soruda .htaccess Kullanımı ve Kodları

Sitemizi düzenlemeye başladığımızda .htaccess dosyası muhakkak karşımıza çıkacaktır. Bu dosya ile sitelerimiz için bir çok düzenleme, yetki verme, kısıtlama, yönlendirme işlemleri yapabiliriz. Listemizde .htaccess dosyasıyla ilgili detayları ele aldık.

1- .htaccess Nedir?

Açılımı “hypertext access file”, Türkçesi “Zengin Metin Erişimi” olan .htaccess dosyası, web sitemizle ilgili sunucumuzda çeşitli ayar gayarı yapmamıza olanak sağlayan güzel bir abimizdir.  Apache web sunucularında bulunur. Dizin seviyesinde bir yapılandırma dosyasıdır. SEO’ya uygun link yapıları ayarlanması, erişimlerle ilgili yetki ve kısıtlama işlemleri, dosyaların gizlenmesi, hata sayfalarının ayarlanması, ip engellemesi, yönlendirme işlemleri gibi bir çok faydalı işleri, .htaccess dosyasını özelleştirerek yapabilmemiz mümkündür. Hele WordPress alt yapılı siteler için hayati önem taşır diyebiliriz.

2- .htacces Dosyası Nerede Bulunur? / Nerede Bulunmalıdır?

Bu dosya sunucumuzun ana dizininde bulunur ve burada bulunmalıdır. WordPress kurduktan sonra eğer “Kalıcı Bağlantılar” ayarlamasını yaptıysanız, bu dosya otomatik olarak oluşturulur.

FileZilla ile sunucunuza bağlandığınızda bu dosyayı ana dizininizde göremiyorsanız, FileZilla’nın “Sunucu” başlıklı menüsüne tıklayarak “Gizli Dosyalar Görüntülensin” seçeneğini aktif ederek .htaccess dosyasını görünür kılabilirsiniz.

3- .htaccess Dosyası Nasıl Oluşturulur?

Bir şeyler ters gidebilir ve .htaccess dosyasını kendiniz oluşturmak zorunda kalabilirsiniz. Dosyayı oluşturmak oldukça kolay.

Bunun için “Notepad++” gibi bir metin editörüne ihtiyacımız var. WordPress Site Sahipleri için Can Yoldaşı Olacak 8 Araç adlı listemizden temin edebilirsiniz. Notepad++ programını açıyoruz. Hiçbir şey yazmadan “Dosya” menüsünden “Farklı Kaydet”e tıklıyoruz. Açılan kayıt penceresinden “Dosya Adı”nı “.htaccess” yapıyoruz (başındaki nokta dahil). “Kayıt Türü”nü “All Types (*.*)” olarak seçtikten sonra “Kaydet” butonuna basıyoruz. Böylece masaüstümüze boş bir “.htaccess” dosyası oluşmuş oldu. Bu boş dosyaya yine “Notepad++” programını kullanarak gerekli kodlarımızı yazabiliriz.

4- .htaccess Dosyası için Hangi Kodlar Ne İşe Yarar?

Dosyamızın bir ayar dosyası olduğunu söylemiştik. Bu ayarların çalışması bazı kodlara bağlıdır. Aşağıda ihtiyacınıza göre en çok kullanılan bazı kodları listeledik. Siz de bu kodları .htaccess dosyanıza ekleyerek ayarlamalarınızı yapabilirsiniz.UYARI: .htaccess dosyasında yapacağınız her değişiklikten önce bu dosyanın yedeğini mutlaka alın. Aşağıdaki kodlar, site yapınızı tümden bozabilecek kodlardır. Aldığınız yedek sayesinde hatalardan geri dönebilirsiniz.

A. Site Adresinden “www” Kaldırmak

Sitenizin adres satırında “www.siteismi.com” olara değil de “siteismi.com” olarak görünmesini istiyorsanız aşağıdaki kodları .htaccess dosyanıza ekleyin. “siteismi” yazan yerlere kendi alan adınızıyazın.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.siteismi\.com [NC]
RewriteRule ^(.*)$ http://siteismi.com/$1 [L,R=301]

B. Sunucuda Bulunan Dosyaların Başka Bir Sitede Kullanılmasını Engellemek

Bazı bilinçsiz ya da niyeti bozuk arkadaşlar kendi sunucusuna yük bindirmemek adına görsellerini, videolarını ya da ses dosyalarını, başka sitelerde bulunan dosyaların linklerini vererek içeriklerine yerleştirirler. Ya da daha kötüsü bot kullanarak veya manuel olarak içeriklerinizi kopyalarlar. Bu durum kaynak sitenin web trafiğine (bandwidth) etki eder. Hem web trafiğinizi korumak hem de hırsızlara karşı bir önlem almak amacıyla “Hotlink Koruması” adı verilen yöntemle .htaccess dosyasına aşağıdaki kodları ekleyerek buna engel olabilirsiniz.

Bu kodlar sayesinde, sitenizdeki herhangi bir görselin linki başka sitelerde paylaşıldığında, o dosya dışında sizin belirleyeceğiniz bir görsel görünür. Bu görseli kendiniz ayarlayabilirsiniz. (Yandaki örnek görselde gördüğünüz gibi) Oluşturduğunuz görseli sunucunuza yükleyerek görsel adresini alın. Kodlardaki belirtilen yere bu görselin adresini yazın.

Görsel dışında sitenize ait mp3, video, rar, doc gibi diğer dosyaların başka sitelerden indirilmesine de engel olmak isterseniz, bu dosyaların indrilmesi için tıklanıldığında kendi sitenize ya da istediğiniz bir sayfaya yönlendirilmesini de sağlayabilirsiniz. Bunu da kodlardaki belirtilen yere sitenizin ya da yönlendirmek istenen sayfanın linkini yazarak yapabilirsiniz.

Eğer .htaccess dosyanıza hiç kod eklemediyseniz “mod_rewrite” (*) modülünün  çalışması için aşağıdaki kodu ekleyin. Daha önce kod eklediyseniz o kodlar arasında aşağıdaki kodun yazılı olduğundan emin olun. Yoksa yazın. Varsa yazmanıza gerek yok.

RewriteEngine On

(*) Bu bir yönlendirme modülüdür. Kiraladığınız sunucuda büyük ihtimalle kuruludur. Eğer .htaccess düzenlemelerinde kodlar bir işe yaramıyorsa bu modül kurulu değil demektir. Sunucunuzdan bu modülü kurmasını isteyin.

RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://([^.]+\.)?siteismi\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{HTTP_REFERER} !yandex\. [NC]
RewriteCond %{HTTP_REFERER} !bing\. [NC]
RewriteCond %{HTTP_REFERER} !facebook\. [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|swf)$ http://siteismi.com/hotlinkgorseli.gif [R,NC]
RewriteRule .*\.(mp3|zip|rar|exe|doc)$ http://siteismi.com/hotlink.html [R,NC]

Kodları inceleyelim. Kodlardaki 3. satırdaki “siteismi” kısmına kendi alan adınızı, www ve com olmadan yazıyorsunuz. Bu kod sizin sitenize izin veren koddur. Aynı şekilde belirleyeceğiniz başka sitelerin hotlink koruması durumundan etkilenmemesini istiyorsanız aynı kodu kopyalayıp bir alt satıra yapıştırıyorsunuz. Yine “siteismi” kısmına izin verdiğiniz sitenin ismini www ve com olmadan yazıyorsunuz.

4, 5, 6, 7, 8, 9. satırlar, arama motorları ve facebook gibi sosyal medya sitelerine izin vermek için kullandığımız kodlar. Bu kodları da aynı şekilde kullanarak çoğaltabilirsiniz.

10. satırdaki kodlar, hotlink korumasında gösterilecek görseli belirliyor. İçerik hırsızlığında gösterilmesini istediğiniz görselin linkini “http://siteismi.com/hotlinkgorseli.gif” alanına yazıyorsunuz. 11. satırda da diğer uzantılı dosyaların  hotlink koruması için yönlendirelecek sayfayı belirliyorsunuz. “http://siteismi.com/hotlink.html” kısmına kendi sitenizi ya da yönlendirilecek sayfanın linkini yazıyorsunuz.

C. Dizinlerin Listelenmesini Engelleme

İçerisinde index dosyası bulunmayan dizinlerdeki dosyaların listelenmesini engellemek, .htaccess dosyasına eklenecek bir kodla mümkün.Aşağıdaki kodu .htaccess dosyasına eklediğinizde kullanıcılar, içerisinde index dosyası bulunmayan bir dizine girdiğinde, “Forbidden” hatasıyla karşılaşır. Dizinlere tek tek index dosyası atmak istemeyener için basit bir çözümdür.

Options All -Indexes

D. Bazı Dosyaların İndirilmesi (Download File)

İçeriklerinizde, okuyucunun bilgisayarına indirmesi için koyduğunuz bazı dosyalar, tarayıcıda açılabilir. Mesela bir .pdf dosyasının linkini indirilmek üzere içeriğinize koydunuz fakat linke tıklandığında dosya tarayıcıda açılmakta. Bu noktada ziyaretçilerinize “Linke sağ tıklayın, hedefi farklı kaydet yapın.” falan gibi açıklama yapmak zorunda kalırsınız. Ya da dosyalarınızı zipleyerek ya da rarlayarak sunarsınız. Bunun çözümü de .htaccess dosyasına eklenecek birkaç satır koddan geçiyor. Aşağıdaki kodla link olarak verdiğiniz dosyalar, tıklayan kişinin bilgisayarına inecektir. İndirilmesini istediğiniz dosya uzantısına  göre “Files” kısmını düzenleyip, çoğaltabilirsiniz.

<Files *.pdf>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>
<Files *.mp3>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>

E. Hata Sayfalarını Yönlendirme

Ziyaretçilerinizi 404, 501 gibi standart hata sayfaları yerine, kendi hazırladığınız eğlenceli veya özel hata sayfalarına yönlendirebilirsiniz. Bunun için öncelikle ana dizininize bir klasör oluşturup ismini “errors” yapın. Bu klasör içerisine hazırladığınız hata sayfalarını ekleyin; mesela 404 hatası için “notfound.html” gibi… Son olarak .htaccess dosyanıza aşağıdaki kodları ekleyin.

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

Eğer sitenizde hata sayfası göstermek istemiyorsanız ve bu hata sayfalarının ana sayfanıza yönlenmesini istiyorsanız dosya yolu yerine aşağıdaki kod örneğindeki gibi site adresini yazın. Bu yöntemle hata sayfaları direk ana sayfanıza yönlenir.

ErrorDocument 404 http://www.siteaismi.com

F. Alan adı (Domain) Yönlendirme

Siteniz için yeni bir alan adı aldınız. Eski alan adınızın yeni alan adınıza yönlendirilmesini istiyorsanız bu kod size cuk oturacak. Bu kod ile, sadece alanadınız değil, alanadınıza bağlı tüm linkler de yeni alanadınıza bağlı linklere yönelecektir. Mesela bir yazınızın linki “http://32byte.org/patlican-kebabi”olsun. Bu linke tıklayan bir kişi otomatik olarak “http://real32byte.org/patlican-kebabi” adresine bu kod ile ışınlanacaktır.

Açmadıysak “mod_rewrite” modülünü RewriteEngine On koduyla açıyoruz. (b maddesinde açıkladık) Aşağıdaki kodları ekliyoruz.

RewriteCond %{HTTP_HOST} ^(www\.)?eskialanadi\.com [NC]
RewriteRule ^(.*)$ http://www.yenialanadi.com/$1 [R=301,L]

Bu işlem bir 301 yönlendirmesidir. Arama motorlarındaki dizinlerinizin etkilenmemesi için kalıcı bir yönlendirme sağlar. Eğer geçici bir yönlendirme yapmak istiyorsanız 301 yerine 302 yönlendirmesi yapmanız gerekiyor. Yani ikinci satırın sonundaki 301 rakamı yerine 302 yazmalısınız.

G. ip Engelleme

Sitemize zarar vermek isteyen kişiler varsa ve ip adreslerini biliyorsak, onların sitemizden uzak durmasını sağlayabiliriz. Tabi ki onlar ip adreslerini değiştirene kadar. Fakat spam botların ip adresleri pek değişmediği için ip bloklama işe yarayabilir. Bu gibi can sıkıcı durumlar için her ne kadar kalıcı bir çözüm olmasa da ip bloklamayı bilmekte fayda var. Aşağıdaki kodlarda bulunan örnek ip adreslerini, engellemek istediğiniz ip adreslerine göre düzenleyerek .htaccess dosyanıza ekleyin.

order allow,deny
deny from 192.168.44.201
deny from 224.39.163.12
deny from 172.16.7.92
allow from all

H. Giriş Sayfasını Ayarlama (Varsayılan İndex)

WordPress siteniz var ve sitenizi ana dizine kurdunuz. Fakat siz site linkinize tıklandığında direk WordPress sitenizin ana sayfasına değil de kendi hazırlamış olduğunuz özel ana sayfayayönlenmesini istiyorsunuz. Mesela ziyaretçileriniz “http://32byte.org” adresine girdiğinde “index.php” sayfası çalıştırılır. Siz bu sayfaya değil de atıyoruz özel hazırlamış olduğunuz “anasayfa.html” sayfasına girilmesini istiyorsunuz. Yani özetle varsayılan index sayfasını değiştirmek istiyorsunuz. Hah işte, aşağıdaki kodla bunu yapabilirsiniz. Kodda bulunan “anasayfa.html” dosya ismini kendi özel hazırladığınız dosya ismine göre düzenleyerek .htaccess dosyanıza ekleyin.

DirectoryIndex anasayfa.html

I. Gzip Sıkıştırmayı Aktif Etme

Web sitemizde bulunan php, js, css, html, jpg gibi dosyaların ziyaretçilere sıkıştırılarak sunulması, böylece sayfa açılış hızının arttırılması ve trafik kullanımının azaltılmasına olanak sağlayan Gzip hede hödesini, .htaccess dosyasına ekleyeceğimiz bir kodla aktif etmemiz mümkün. Gzip sıkıştırma site hız optimizasyonunda muazzam bir yöntemdir. Büyük ihtimal sunucunuzda Gzip modülü kurulu haldedir. Değilse kurdurun. Aşağıdaki kodları da .htaccess dosyanızın en başına ekleyin.

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf
AddOutputFilterByType DEFLATE font/truetype font/opentype
</IfModule>

Bu kodların işe yarayıp yaramadığını da buradaki siteden test edebilirsiniz. Sitedeki kutuya site adresini yazıp “Check” butonuna basıyorsunuz. Açılan sayfada eğer “Web page compressed?” yazısı karşısında “YES” yazıyorsa sıkıntı yok demektir.

J. İstenmeyen Botları Engelleme

Bazı uyanıklar, içerik üretmek yerine, var olan içerikleri bot denilen yazılımlarla otomatik olarak çekip kendi sitelerinde yayınlarlar. Can sıkıcı bir durum, evet… Bu durumu tamamen engeleyemeseniz de, bilinen bu tür kötü bot yazılımları .htaccess dosyanıza ekleyeceğiniz uzunca bir kodla engelleyebilirsiniz.

Dediğimiz gibi kod uzun. Ayhan Korkmaz biraderimiz kendi sitesinde hem bu konuya değinmiş, hem de zamane botlarına göre kodları güncellemiş.

K. wp-config Dosyasına Erişimi Engelleme

Veritabanı bilgilerinin bulunduğu “wp-config” dosyasına erişimi aşağıdaki kodla engelleyebilirsiniz.

<Files wp-config.php>
Order Deny,Allow
Deny from all
</Files>

L. “.htaccess” Dosyasına Erişimi Engelleme

Düzenlediğimiz bu muazzam dosyayı kem gözlerden korumak için de aşağıdaki kodları kullanabilirsiniz.

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Bu liste böyle uzar gider. Biz en çok lazım olan kodları paylaşamaya çalıştık. Eksiğimiz gediğimiz varsa yorum kısmından bize bildirebilirsiniz. Duruma göre listemizi güncelleriz.

5- .htaccess Kullanımında Hangi Konulara Dikkat Etmek Gerekir?

  • “RewriteEngine on” komutunu bir kere eklediyseniz tekrar tekrar eklemenize gerek yok. Bir kere yazılması yeterlidir.
  • Yönlendirme işlemi yapan kodların diğer kodlardan sonra gelmesine dikkat edin. Yani .htaccess dosyanızda önceliği her zaman modül çalıştıran kodlara verin. Yönlendirme kodlarınız sondabulunsun.
  • Kodları düzenlerken neyin ne olduğunu karıştırmamak için ekleyeceğiniz kod grubunun hemen üst satırına “#” işareti koyarak kodun ne işe yaradığını yazabilirsiniz. #www Kaldırma Kodu”gibi…
  • Bu dosyayı düzenlemeden önce mutlaka dosyanın yedeğini alın. Kodlar problem çıkardığında yedekteki dosyanızla değiştirirsiniz.
  • Her ne kadar bu kodlar hayat kurtarsa da, .htaccess dosyasında fazla kod bulunması hızınızı etkileyebilir. Çünkü her kod bir sorgu çalıştırır. Bu da sunucu CPU‘suna etki edebilir. Bu nedenle bu dosyayı olabildiğince küçük tutun.

Burada şunun altını çizmek istiyoruz: “WordPress İçin En Uygun .htaccess Dosyası” diye bir şey yoktur. Bu dosya sizin tarafınızdan, ihtiyacınıza uygun olarak oluşturulmalıdır.

.htaccess dosyasıyla ilgili bizim anlatacaklarımız bu kadar. İnternette bu kodlar hakkında tonlarca içerik var. Bu içeriklerden bazıları hatalı. Biz de hatalı bilgi sunmamak adına kodları tek tek, bir kaç sitede test ettik.

Yorum Yap

Yazar Hakkında

Samet KARACAN

Owner # wordpress, web güvenlik, sistem yönetimine dair ~

Yorum Yap