Htaccess Nedir? .htaccess Komutları ve Örnekler

Htaccess Nedir? .htaccess Komutları ve Örnekler

Htaccess Apache tarafından kullanılan hypertext access dosyasının kısaltılmış adıdır. Web sunucu üzerinde konfigürasyon modifikasyonları yapılmasını sağlar. Başında nokta ile yazılan bu dosya ".htaccess", Apache başta olmak üzere çoğu ağ sunucusu tarafından kullanılan web alanı üzerinde ayar değişimleri yapılmasını sağlayan dosyadır.

htaccess kullanırken;

  • .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'i yeniden tanımladığınız, bir önceki sayfaya yönlenen kurallarda (Nohotlink örneği gibi) [L] özelliğini ekleyin. Bu sunucuya, başka bir kuralı uygulamamasını belirtir.
  • .htaccess kurallarının alt klasörlerde de geçerli olduğunu, alt klasördeki .htaccess kuralının ise üzerindeki kuralları değiştirebileceğini unutmayın.

Bazı htacess komutlarını örneklerle görerek ne işe yaradıklarına bakalım.

htaccess İle Klasörlere Erişimi Kapatmak

Bir klasöre tüm erişimi engellemek istiyorsanız (mesela program kaynak kodlarınızı barındıran bir klasörünüz olabilir; bu durumda klasöre internetten değil, yalnızca dosya sisteminden erişmeyi isteyebilirsiniz) klasörün içinde .htaccess dosyası oluşturup içine

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

htaccess tek dosyaya erişimi kapatmak

Tek bir dosya için erişimi engellemek için ise yazmanız gereken şu:

<Files private.html>
Order allow,deny
Deny from all
</Files>

.htaccess İle Klasör İçeriğini Listelemek

Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor:

Options +Indexes +MultiViews +FollowSymlinks
<ifmodule mod_autoindex.c>
IndexOptions FancyIndexing
</ifmodule>

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

IndexIgnore *

htaccess İle Gzip veya Zlib Sıkıştırma

Sitenizin bant genişliğini (bandwidth) korumak için bir php özelliği olan veri sıkıştırmayı (compress) kullanabilirsiniz.

gzip için;

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Zlib için;

<ifModule mod_php4.c>
php_value zlib.output_compression 16386
</ifModule>

Dosyaları Gizlemek

Belirli dosyalara erişimi engellemek için Files direktifiyle birlikte Regular Expression kullanabilirsiniz.

Örneğin konfigürasyon dosyalarına, robot.txt’ye veya log'lara erişimi engellemek isteyebilirsiniz.

Aşağıdaki örnek klasördeki .ht ile başlayan dosyalara erişimi engellemektedir.

<Files ~ “^.ht”>
Order allow,deny
Deny from all
Satisfy All
</Files>

htaccess İle Özel HTTP 404 Error Hata Sayfası

Ziyaretçileriniz "404 Not Found - Sayfa Bulunamadı" hatasıyla karşılaşacaklarında sizin istediğiniz bir dosyaya yönlenmelerini sağlamak için şu kodu kullanın;

ErrorDocument 404 /errors/404.html
ErrorDocument 410 /errors/410.php

Bu şekilde diğer hata kodlarını da özelleştirebilirsiniz. Dikkat! Internet Explorer 512 bayttan küçük hata sayfalarıyla karşılaştığında, MSN search gibi bağlantıların bulunduğu kendi hata sayfasını kullanıcıya göstermektedir. Belirttiğiniz hata sayfasının 512B’tan büyük olduğuna emin olun.

Hotlinking'i Engellemek

Sitenizdeki dosyaları başka sitelerin sömürmesine müsade etmek istemiyorsanız;

Hotlinking basitçe sizin sitenizdeki bir resmi, videoyu başka bir sitenin göstermesine denir. Bu durumda olan sizin bandwidth'inize olur. Örneğin sitenizin dışında kullanılan bazı dosyalara erişimi engelleyip nohotlink.gif adında bir resim dosyası gönderen şu koda bakalım:

<IfModule mod_rewrite.c>
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]
</ifModule>

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

htaccess İle no-www Desteği

Web sayfanızın www Subdomain’ini kullanılmasını istemiyorsanız bu kod işinizi görecektir.

www.somut.net talep edildiğinde tarayıcı somut.net'e yönlendirir.

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www.somut.net[nc]
RewriteRule ^(.*)$ http://somut.net/$1 [r=301,nc]
</ifModule>

Hangi Dili Kullandığınızı Saklamak

Dosyalarınızın uzantılarını değiştirip .htaccess dosyasına bir kural ekleyerek hangi dili kullandığınızı ziyaretçilerinizden saklayabilirsiniz. Aşağıdaki örnek sayesinde .133t uzantılı dosyalar PHP dosyaları gibi işlenecektir.

AddType application/x-httpd-php .133t

.htpasswd ile Şifre Koruması

İstediğiniz dosya veya klasörlere şifre eklemek için şu adımları takip edin;

Şifrelemek istediğiniz klasörde .htpasswd dosyası oluşturun.

Dosya içeriği kullanıcıadı:şifre tarzındadır. Kullanıcı adı düz metindir. Şifrenin ise şifrelenmiş olması gerekir.

Şifrenizi almak için Google'da şu aramayı yapın; htpasswd generator karşınıza çıkan sitelerden birisinden şifre oluşturabilirsiniz.

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”
<LIMIT GET POST>
require valid-user
</LIMIT>

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.

Ön tanımlı Sayfayı Değiştirmek

Öntanımlı sayfa bilgisini aşağıdaki şekilde, sıraya dikkat ederek değiştirebilirsiniz

DirectoryIndex home.html index.htm index.html index.php


1 yorum

  • Yorumunuz en az 30 karakter olmalıdır. (0)
    Tüm Yorumlar
    • Hüseyin AFACAN
      Hocam iyi günler Google Web Search içerisinde bulunan 404 vermiş sayfaları 410 a çevirmek isityorum yapıyorumda ancak içerisinde ?

      Yanıtla

Sitede Ara

  • Merhaba Ben Arda Özeren Yahya Çavuş Ortaokulu Gidiyorum 10 Sınıfım Bende Yarışma Katılmak İstiyorum Sel...
  • Açıköğretim Aöf Dönem Ücretleri 2024 - 2025 Güncel Öğretim Giderleri Tablosu
    Okumuyorum ve kayıt yenilemiyorum. Nokta....
  • Islets Oyunu Türkçe Yama (Epic ve Steam)
    Rar şifresi nedir? şifreyi belirymemişsiniz...
  • ECA Kombi Aşırı Isınma Arızası Arıza Kodu 6 Nedir Nasıl Çözülür - Pompa Çalışmıyor Olabilir Mi?
    bu hata kodu çıkıyordu kombimizde tarif ettiğiniz şekilde pompayı harekete geçirdik ve sorun çözüldü si...
  • Çiklet (Prenses) Balıklarındaki Ürkeklik ve Korkaklık
    Ben çok uzun süre sp, bp ile frenatus besledim hiç bir sorun yaşamadım. Çok uyumlulardı. Renk katıyor a...
  • Genel İşletme 1. Dönem Vize Soruları
    soru 3 yanlıs bence"...
  • CS 1.5 ve CS 1.6 İçin Sağlam Bir CFG (cengaver.cfg)
    bozuk bu cfg kullanmayın derim ...