.htaccess dosyası,
Apache web sunucusunu yapılandırmak için kullanılan güçlü bir araçtır. Bu dosya, web sitenizin davranışını özelleştirmenize ve güvenliğini artırmanıza olanak tanır. İşte
.htaccess dosyanızda kullanabileceğiniz faydalı bazı
kod parçaları ve bunların ne işe yaradığına dair açıklamalar ;
URL Yönlendirme
.htaccess dosyası ile URL’leri yönlendirebilirsiniz.
Örneğin, “
www” ön ekini kaldırmak veya belirli bir
URL’yi başka bir sayfaya yönlendirmek için kullanabilirsiniz.
PHP- Kodu
# www ön ekini kaldır
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Bir sayfayı başka bir sayfaya yönlendir
Redirect 301 /eski-sayfa.html /yeni-sayfa.html
-------------------------------
Özelleştirilmiş Hata Sayfaları
Hata sayfalarınızı özelleştirmek için
.htaccess’i kullanabilirsiniz.
PHP- Kodu
# 404 Sayfasını özelleştir
ErrorDocument 404 /404.html
# 500 Sayfasını özelleştir
ErrorDocument 500 /500.html
-------------------------------
IP Adresi Tabanlı Erişim Kontrolü
Belirli
IP adreslerine veya
IP aralıklarına erişimi sınırlamak için kullanabilirsiniz.
PHP- Kodu
# Belirli bir IP adresine izin ver
Allow from 192.168.1.100
# IP aralığına izin ver
Allow from 192.168.1.0/24
# Belirli bir IP adresini engelle
Deny from 123.45.67.89
-------------------------------
Dosya Erişim Kontrolü
Belirli dosya türlerine veya dizinlere erişimi kontrol etmek için kullanabilirsiniz.
PHP- Kodu
# .htaccess dosyasına erişimi engelle
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
# .pdf uzantılı dosyalara erişimi engelle
<FilesMatch "\.(pdf)$">
Order allow,deny
Deny from all
</FilesMatch>
-------------------------------
Hotlink Koruması
Diğer sitelerin kaynaklarını kullanmasını engellemek için
hotlink koruması ekleyebilirsiniz.
PHP- Kodu
# Hotlink koruması
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
-------------------------------
Erişim Şifrelemesi (HTTPS)
Web sitenizin tamamını
HTTPS ile erişime zorlamak için kullanabilirsiniz.
PHP- Kodu
# HTTPS ile erişimi zorla
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
-------------------------------
Gzip Sıkıştırma
İçerik sıkıştırma ile sayfalarınızın daha hızlı yüklenmesini sağlayabilirsiniz. Bu özellikle büyük web siteleri için önemlidir.
PHP- Kodu
# Gzip sıkıştırma etkinleştir
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
</IfModule>
-------------------------------
Cache Kontrolü
Tarayıcı önbelleğini yönetmek için
cache kontrolü kullanabilirsiniz.
PHP- Kodu
# Etki alanına özgü önbellek etkinleştirme
<FilesMatch "\.(jpg|jpeg|png|gif|js|css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
-------------------------------
Oturum Yönetimi
Oturum yönetimi için
.htaccess’i kullanabilirsiniz.
PHP- Kodu
# Oturum süresini artır
php_value session.gc_maxlifetime 3600
# Oturum dosyalarını farklı bir dizine kaydet
php_value session.save_path "/path/to/session/directory"
-------------------------------
Karakter Seti Ayarları
Karakter setini belirlemek ve sorunları önlemek için
.htaccess‘i kullanabilirsiniz.
PHP- Kodu
# Karakter setini belirle
AddDefaultCharset UTF-8
# Eğer karakter seti belirleme sorunları yaşıyorsanız
AddCharset utf-8 .html
-------------------------------
Erişim Logları
Erişim loglarını özelleştirmek ve gizlemek için
.htaccess’i kullanabilirsiniz.
PHP- Kodu
# Erişim loglarını gizle
<FilesMatch "^access\.log$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
-------------------------------
HTTP Başlığı Ekleme
HTTP başlıklarını ekleyerek güvenlik ve performansı artırabilirsiniz.
PHP- Kodu
# Güvenlik başlıkları ekleme
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options "nosniff"
-------------------------------
Dizin İndexi Ayarları
Dizin indeksini özelleştirmek ve güvenliği artırmak için
.htaccess’i kullanabilirsiniz.
PHP- Kodu
# Dizin indeksini devre dışı bırak
Options -Indexes
# Özel bir dizin sayfası belirle
DirectoryIndex custom.html
-------------------------------
Dosya İzinleri Kontrolü
Dosya izinlerini korumak için
.htaccess kullanabilirsiniz.
PHP- Kodu
# İzin verilmeyen dosya türlerine erişimi engelle
<FilesMatch "\.(ini|log|sh|inc|bak)$">
Order allow,deny
Deny from all
</FilesMatch>
-------------------------------
Dil ve Bölge Ayarları
Web sitenizin
dil ve bölge ayarlarını
.htaccess ile belirleyebilirsiniz.
PHP- Kodu
# Karakter kümesini belirle
AddDefaultCharset UTF-8
# Dil ayarlarını belirle
SetEnvIf Request_URI "^/tr/" prefer-language=tr
SetEnvIf Request_URI "^/fr/" prefer-language=fr
Header append Vary: Prefer-Language
-------------------------------
Dosya Yeniden Adlandırma
.htaccess ile dosya adlarını yeniden adlandırabilirsiniz.
PHP- Kodu
# .php uzantılı dosyaları .html olarak göster
RewriteEngine On
RewriteRule ^([^\.]+)\.html$ $1.php [NC,L]
-------------------------------
IP Tabanlı Redirection
Belirli
IP adreslerini farklı bir sayfaya yönlendirmek için
.htaccess’i kullanabilirsiniz.
PHP- Kodu
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.89$
RewriteRule ^$ /blocked.html [L]
-------------------------------
Geçici Bakım Modu
Web sitenizi geçici olarak bakım moduna almak için
.htaccess kullanabilirsiniz.
PHP- Kodu
# Geçici bakım modu
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteCond %{REQUEST_URI} !/bakim.html$
RewriteRule $ /bakim.html [R=302,L]
-------------------------------
Erişim Kontrolü ve Kimlik Doğrulama
Belirli sayfaları
kimlik doğrulamaya tabi tutmak için
.htaccess kullanabilirsiniz.
PHP- Kodu
# Kimlik doğrulamayı etkinleştir
AuthType Basic
AuthName "Giriş Yapın"
AuthUserFile /path/to/.htpasswd
Require valid-user
-------------------------------
Başka Bir Domain’e Yönlendirme
.htaccess ile başka bir
domain’e yönlendirme yapabilirsiniz.
PHP- Kodu
# Başka bir domain'e yönlendirme
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://yeniexample.com/$1 [L,R=301]
Not
Bu kod parçaları,
.htaccess dosyasını kullanarak web sitenizin performansını artırabilir, güvenliğini sağlayabilir ve davranışını özelleştirebilirsiniz. Ancak, bu kodları kullanırken dikkatli olmalı ve her değişiklikten sonra
web sitenizin doğru çalıştığını doğrulamalısınız. Ayrıca, sunucunuzun
.htaccess dosyalarını destekleyip desteklemediğini kontrol etmelisiniz.