- Varsayılan Dizin Sayfaları
DirectoryIndex index.html index.php index.htm
Varsayılan dizin dosyası ile ilk çalıştırılacak dosya adını veya türünü belirleyebilirsiniz. - Varsayılan Hata Sayfası
ErrorDocument 404 errors/404.html
Ulaşılamayan sayfalarda (404) özelleştirilmiş bir hata sayfası göstermek için kullanılabilir. - Dosya ve Dizinler de Yetki Kontrolü
# kimse bu dizini listeleyemesin!
deny from all
.htaccess dosyasının bulunduğu dizin ve içerisindeki dizinlere/dosyalara erişimi yasaklar.
-# sadece izin verilen ip blogu veya ip
order deny,allow
deny from all
allow from 192.168.0.0/24
# this would do the same thing..
#allow from 192.168.0
Sadece belirtilen ip veya ip bloguna izin vermek ve diğer herkesin erişimini engellemek için kullanılabilir.
-# tek kisiyi engelle
order allow,deny
deny from 83.222.23.219
allow from all
Tam tersi kullanım ile belirlediğiniz ip dışındakilere erişim hakkı verilebilir. - .htaccess ile 301 Yönlendirme
Redirect 301 /eski/sayfa.html http://siteniz.com/yeni/sayfa.html
Sitenizdeki eski sayfaları yenilerine yönlendirebilirsiniz.
-RedirectMatch 301 /blog(.*) http://siteniz.com/$1
Yönlendirme işlemini biraz daha detaylı belirtebilirsiniz. - Önbelleğe Alma Şemasını Değiştirme
# yil
Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified
#2 saat
Header set Cache-Control "max-age=7200, must-revalidate"
SetOutputFilter DEFLATE
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Statik yani değişmeyen dosya uzantılarını belirterek istemcinin bu dosyaları önbelleğe almalarını sağlayarak trafiğinizi düşürebilir ve sayfalarınızın daha hızlı açılmasını sağlayabilirsiniz. Yukarıdaki örnekte ilk kısım statik dosyalar ve 1 yil süreyle önbellekte tutulabileceği belirtildi, ikinci örnekte ise değişme olasılığı yüksek olan dosyalar için 2 saat önbellekte tutulabilir şeklinde belirtildi. Dosya uzantıları ve sürelerle oynayarak istediğiniz önbellekleme yapısını oluşturabilirsiniz. Önbellekleme için sunucu taraflı memcache vb. yazılımlar ile sonraki maddede belirttiğimiz gzip kullanılabilir. - İsteklerin GZIP ile Sıkıştırılarak Gönderilmesi
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Bu şekilde tüm html, txt, css, js, php ve pl dosyalarını sıkıştırarak istemcinin daha hızlı dosyayı almasını sağlar.
-
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
Eğer web sunucusu mod_deflate desteği sağlıyorsa yukarıdaki kodu kullanabilirsiniz.
-
php_value output_handler ob_gzhandler
Eğer web sunucunuz mod_deflate desteği sağlamıyor ise yukarıdaki kodu kullanabilirsiniz. - Tarayıcıyı https (ssl) Siteye Yönlendirmek
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Bu şekilde sitenizin http ile yapılan girişleri https şeklinde yönlendirilmesini sağlayabilirsiniz. - URL'nin .htaccess ile Yeniden Düzenlenmesi
RewriteEngine on
RewriteRule ^urun-([0-9]+)\.html$ urun.php?id=$1
Web sitesinden urun-12.html sayfası çağrıldığında urun.php?id=12 sayfasının çalışması
-RewriteEngine on
RewriteRule ^urun/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ urun.php?id=$2
Web sitesinden urun/ipod-nano/12.html sayfası çağrıldığında urun.php?id=12 sayfasının çalışması
-RewriteEngine On
RewriteCond %{HTTP_HOST} ^viralpatel\.net$
RewriteRule (.*) http://www.viralpatel.net/$1 [R=301,L]
Web sitesinde www olmayan adresin www olan adrese yönlendirilmesi
-RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ uye.php?kadi=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ uye.php?kadi=$1
Web sitesinin siteniz.com/kullaniciadi veya siteniz.com/kullaniciadi/ sayfası çağrıldığında siteniz.com/uye.php?kadi=kullaniciadi - Dizin Listelenmesi / Engellenmesi
Options -Indexes
veyaIndexIgnore *
ile belirtilen dizindeki dosyaların listelenmemesini sağlayabilirsiniz.
-Options +Indexes
ile dizinin listelenmesini sağlayabilirsiniz.
-Options +Indexes
IndexOptions +FancyIndexing
Listelemeye ek olarak FancyIndexing belirtilerek listelenen dizinlerde Dosya/Dizin Adına ek olarak Son Düzenleme Tarihi, Boyutu, Açıklamasının da çıkması sağlanabilir. - Yeni Dosya Türleri
AddType application/x-endnote-connection enz
AddType application/x-endnote-filter enf
AddType application/x-spss-savefile sav
Yeni dosya türlerini bu şekilde tanımlayabilirsiniz. - Statik Dosyalara Direkt Erişimi Engellemek
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteCond %{HTTP_REFERER} !^http://www.askapache.com.*$ [NC]
RewriteRule \.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ - [F,NS,L]
Resim, video, müzik vb. dosyalara sitenize ait sayfaları kullanmadan direkt erişimi engellemek için kullanılabilir. - PHP için Dosya Yükleme ve Süre Limitlerinin Düzenlenmesi
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
PHP dosyalar da Apache'nin standart ayarlarının dışına çıkmak için yukarıdaki yöntemi kullanarak dosya yükleme boyutu, dosya post edilme boyutu, çalıştırma süresi ve giriş süresini düzenleyebilirsiniz. - Dosyaların Çalıştırılmasını Engellemek
Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Belirtilen uzantılara ait dosyaların text dosya görevi görmesini sağlayarak server tarafından çalışması engellenecektir. - Varsayılan Karaktersetinin ve Dil Başlığının Değiştirilmesi
AddDefaultCharset UTF-8
DefaultLanguage en-US - Sunucu Zaman Diliminin Değiştirilmesi
SetEnv TZ Europe/Istanbul
- Dosyanın LDAP ile Korunması
order deny,allow
deny from all
AuthType Basic
AuthName "ODTU Kullanici Girisi"
AuthLDAP on
AuthLDAPServer ldap://ogrenciler.metu.edu.tr/
AuthLDAPBase "ou=Student, o=Ortadogu Teknik Universitesi, c=au"
require valid-user
satisfy any
Belirtilen dosyaya erişimin LDAP doğrulama yöntemi ile korunmasını sağlar. - Özelleştirilmiş Başlık (Header) Bilgisi Gönderme
Header set P3P "policyref=\"http://www.askapache.com/w3c/p3p.xml\""
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"
Header set Content-Language "en-US"
Header set Vary "Accept-Encoding" - User-Agent ile Gelen Belirli İstekleri Engelleme
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
En Çok Kullanılan .htaccess Yöntemleri
Apache kullananların en çok ihtiyaç duyduğu .htaccess ile ilgili ihtiyaçlarım doğrultusunda birkaç araştırma sonrası aşağıda paylaştığım 21 farklı .htaccess kullanım ipucuna ulaştım. Çeviri niteliğindedir fakat mutlaka bir kenarda bulundurulmalı diye düşünüyorum.
0 yorum:
Yorum Gönder