Takvim
Aralık 2024
P S Ç P C C P
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

.htaccess ve açıklamaları

HTACCESS nedir, neye yarar, yönlendirme, sınırlandırma, güvenlik

.htaccess (ingilizce= Hypertext Access) İnternet sayfaları için Apache serverlerde ayarlar yapmaya yarayan bir dosya türüdür. .htaccess ile güvenlik amacıyla dosyalara şifre koruma sağlayabilir, yönlendirmeleri istediğiniz bir sayfaya yapabilir, uzun php, asp yada diğer uzantılarda adres kısaltması yapmaya olanak verir. Apache’yi yada Server üzerinde yüklü olan işletim sistemini yeniden başlatmadan htaccess ile yaptığınız değişiklikler aktifleştiği için oldukça pratik çözümler bulunabilir. Server ayarlarının yapıldığı dosyalara ulaşılmadığı durumlarda (örn. httpd.confi php.ini gibi) bazen kurtarıcı rolünü üstlenir özellikler taşır.
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 düşünün.
.htaccess hazırlamak

Basit bir text editörü ile yeni bir sayfa oluşturun. Sayfayı .htaccess ismiyle kaydedip, FTP üzerinden sunucunuzdaki ana dizine gönderin.

Not: Windows kullananlar dosyayı kaydederken hata mesajı alabilirsiniz. Hata mesajı alıyorsanız, htaccess.txt olarak kaydedin. FTP üzerinden yolladıktan sonra “htaccess.txt” ismini “.htaccess” olarak değiştirin.

.htaccess’le Kullanılan Kodlar
Aşağıdaki kodları alıp, oluşturduğunuz .htaccess dosyasının içine yapıştırın:

Şifre KorumaŞifre koruma için .htaccess dosyası oluşturduğumuz gibi, .htpasswd isminde yeni bir dosya oluşturup, içine alttaki kodalrı yapıştırın.

#
#Dosya yada klasör için şifreli koruma sağlamak için alttaki kodu kullanabilirsiniz:
#Allow from xxx\\.xxx\\.xxx\\.xxx yazan yere server IP numarasını girin (ters slash, 
#
yani ’ \’ işaretlerini kaldırmadan)
#Dosya yada klasör için şifreli koruma sağlamak için alttaki kodu kullanabilirsiniz:
##############################################
AuthName 
“sitenizimismi.com”
AuthUserFile /home/sitenizinismi.com/.
htpasswd
AuthType basic
Require valid
user
Order deny
,
allow
Deny from all
Allow from xxx
.xxx.xxx.
xxx
Allow from keditor
.
com
Allow from googlebot
.
com
Satisfy Any 

.htaccess ile rewrite yapımı

.htaccess dosyasının içine alttaki kodalrı yapıştırın:

KOD:
Options +FollowSymLinks
RewriteEngine On
#RewriteBase /
#Makes image.gif, blah.html, index.cgi all act as php
#ForceType application/x-httpd-php
#Redirect non-https requests to https server fixing double-login problem and ensuring that htpasswd authorization can only be entered using HTTPS 
#SSLOptions +StrictRequire
#SSLRequireSSL
#SSLRequire %{HTTP_HOST} eq ”google.com”
ErrorDocument 403 https:
//google.com 

#Yonlendirme yapmak için eski/dosya1.html yazan yere eski adresi, /yeni/dosya2.html yazan yerer de yeni adresi yazınız.
Redirect 301 /eski/dosya1.html http://www.sitenizinismi.com/yeni/dosya2.html

#Birden çok adres yönlendirmesi

KOD:
RedirectMatch 301 /blog(.*) http://www.webmasteralani.com/$1
Redirect 301 http:
//www.izlefilm.net 

#Farkli bir domain ismi ile

KOD:

Redirect 301 http://www.izlefilm.net 

# www isteme – yontem 1

KOD:

RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{HTTP_HOST} !^www.izlefilm.net$ [NC
]
RewriteRule ^(.*)$ http://www.izlefilm.net/$1 [R=301,L]

# www isteme – yontem 2

KOD:

RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
RewriteCond %{HTTP_HOST} !^www.[az-]+.[az]{2,6} [NC
]
RewriteCond %{HTTP_HOST} ([az-]+.[az]{2,6})$ [NC
]
RewriteRule ^/(.*)$ http:
//%1/$1 [R=301,L] 

#subdomain istememek – 1

KOD:

RewriteCond %{HTTP_HOST} .([az-]+.[az]{2,6})$ [NC]
RewriteRule ^/(.*)$ http:
//%1/$1 [R=301,L] 

#subdomain istememek – 2

KOD:

RewriteCond %{HTTP_HOST} .([^.]+.[^.09]+)$
RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC
]
RewriteRule ^(.*)$ http:
//%1/$1 [R=301,L] 

#Ip adrese gore yonlendirme – 1

KOD:

ErrorDocument 403 http://www.izlefilm.net
Order deny,
allow
Deny from all
Allow from xxx
.xxx.xxx.xxx 

.htaccess ile Charset ayarları yapmak

KOD:

AddDefaultCharset UTF8
# Or AddType ’text/html; charset=UTF-8′ html
DefaultLanguage tr
TR
Using the Files Directive
<Files “\\.(htm|html|css|js|php)$”
>
   
AddDefaultCharset UTF
8
   DefaultLanguage  tr
TR
</Files
>
Using the FilesMatch Directive (preferred
)
<
FilesMatch “\\.(htm|html|css|js|php)$”
>
   
AddDefaultCharset UTF
8
   DefaultLanguage  tr
TR
</FilesMatch

Hangi programlama 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.

# Make PHP code look like unknown types
AddType application/x-httpd-php .133t

.htaccess’de PHP.ini ayarları yapma

KOD:

AddHandler cgiscript .php .pl .py .jsp .asp .htm .shtml .sh .cgi 
Options 
ExecCGI
Options 
ExecCGI Indexes All +
FollowSymLinks
RewriteEngine On
RewriteBase 
/
RewriteCond %{REQUEST_METHOD} !^(GET|PUT
)
RewriteRule .* – [F
]
Processing All gif files to be processed through a cgi script 
Action image
/gif /cgibin/filter.
cgi
Script PUT 
/cgibin/upload.
cgi
AddType application
/octetstream .
avi 
AddType application
/octetstream .
mpg
RemoveHandler cgi
script .pl .py .
cgi 

Yedek dosyalarla hız artırımı

# AY

KOD:

<FilesMatch “\\.(flv|gif|jpg|jpeg|png|ico|swf)$”>
   
Header set CacheControl 
“max-age=2592000″
</FilesMatch

# HAFTA

KOD:

<FilesMatch “\\.(js|css|pdf|txt)$”>
   
Header set CacheControl 
“max-age=604800″
</FilesMatch

# GUN

KOD:

<FilesMatch “\\.(html|htm)$”>
   
Header set CacheControl 
“max-age=43200″
</FilesMatch

Resim ve diğer dosyaların başka bir sitede görünmesini engelleme (NoHotlinking):

Hotlinking basitçe sizin sitenizdeki bir resmi, müzik dosyasını, videoyu başka bir sitenin göstermesine denir. Bu durumda olan sizin bandwidth’inize olur. Örnek olarak sitenizin dışında kullanılan bazı dosyalara erişimi engelleyip error.gif adında bir resim dosyası gönderen şu kodu uygulayabilirsiniz:

KOD:

<IfModule mod_rewrite.c>
Options +
FollowSymLinks
RewriteEngine On
RewriteBase 
/
RewriteCond %{HTTP_REFERER
} !^$
RewriteCond %{HTTP_REFERER} !^http:
//(www\\.)?siteniz.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png|zip|mp3|avi|wmv|mpg|mpeg)$ http:
//www.siteniz.com/error.gif [R=302,L]
</ifModule

Kod basitçe siteniz.com dışından çağırılan zip, mp3 ve bazı video dosyaları yerine error.gif dosyasını gösteriyor.

Not: 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.

Kendinize özel HTTP 404 hata sayfası göstermek

Ziyaretçileriniz “404: Sayfa Bulunamadı” hatasıyla karşılaşacaklarında sizin istediğiniz bir dosyaya yönlenmelerini sağlamak için aşağıdaki kodları kullanın.

Not: 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.

Hata Sayfalarına yönlendirme

KOD:

ErrorDocument 404 /favicon.ico
ErrorDocument 403 https
:
//secure.siteniz.com/error.html
ErrorDocument 404 /error.
html
ErrorDocument 400 
/error.
html
ErrorDocument 401 
/error.
html
ErrorDocument 403 
/error.
html
ErrorDocument 405 
/error.
html
ErrorDocument 406 
/error.
html
ErrorDocument 409 
/error.
html
ErrorDocument 413 
/error.
html
ErrorDocument 414 
/error.
html
ErrorDocument 500 
/error.
html
ErrorDocument 501 
/error.html 

Varsayılan ayarlar

KOD:

Options +ExecCGI Indexes
DirectoryIndex index
.php index.html index.
htm
 
### VARSAYILANLAR ###
ServerSignature Off
AddType video
/xflv .
flv
AddType application
/xshockwaveflash .
swf
AddType image
/xicon .
ico
AddDefaultCharset UTF
8
DefaultLanguage en
US
SetEnv TZ America
/
Indianapolis
SetEnv SERVER_ADMIN webmaster
@^^SITE^^.^^TLD
^^
 
### CGI HIZLANDIRMA ###
AddHandler fastcgi
script fcgi
AddHandler php
cgi .
php
Action php
cgi /cgibin/php5wrapper.
fcgi 

Klasörlere erişimi engelleme

Bir klasöre tüm erişimi engellemek istiyorsanız (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 alttaki kodları ekleyin:

KOD:

#deny all access
deny from all 

Eğer bu klasöre yalnızca belirlediğiniz ip adresiyle erişilmesini istiyorsanız:

KOD:

#deny all access
deny from all
allow from 10.0.0.1 
# tek ip adresi 

Eğer bu klasöre yalnızca belirlediğiniz ip bloğunun erişmesini istiyorsanız:

KOD:

#deny all access
deny from all
allow from 192.168.0.0
/24 
# ip bloğu 

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

KOD:

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

Klasör listelemek

Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şu satırları yazınız:

KOD:

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

Not: Bunun için sunucunuzda autoindex modülünün yüklü olması gerekiyor.

Klasördeki öntanımlı listelemeyi iptal etmek için ise şu satır yeterli:

IndexIgnore *

Sıkıştırma yaparak aylık trafik miktarını düşürme

Sitenizin bant genişliğini (bandwidth) korumak için bir php özelliği olan zlib’i (veri sıkıştırma) kullanabilirsiniz. .htaccess dosyasına şunu eklemelisiniz:

KOD:

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

Görünmesini istemediğiniz dosyaları gizlemek

Belirli dosyalara erişimi engellemek için “Files” komutuyla birlikte Regular Expression kullanabilirsiniz. Örnek olarak konfigürasyon dosyalarına, robot.txt’e veya log’lara erişimi engellemek isteyebilirsiniz. Aşağıdaki örnek, o klasördeki .ht ile başlayan dosyalara erişimi engellemektedir.

KOD:

<Files ~ &#8220;^\.ht”>
Order allow,
deny
Deny from all
Satisfy All
</Files

www olmadan site adresi desteği

Siz de sitelerde www subdomain’inin kullanılmasına karşıysanız bu kod işinizi görecektir:

KOD:

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

HTML, HTM, PHP, ASP önceliğini belirleme

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

KOD:

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

CHMOD

chmod haklarını (dosya imtiyazları) belirlerken.htpasswd dosyaları için 640, .htaccess dosyaları için 644, php dosyaları 600, hiç görülmemesini istediğiniz dosyalar için 400, herkese görünmesini istediğiniz dosyalar için 777kullanın.

KOD:

Variable (mod_envMagic 
Set the Timezone of the server
:
SetEnv TZ Europa/
Berlin
Set the Server Administrator Email

SetEnv SERVER_ADMIN webmaster@siteniz.
com
Turn off the ServerSignature 
ServerSignature Off 

Zararlı bot’ları engellemek

Sitenizi kullanan veya tamamen indirmek isteyen bot’lara karşı .htaccess dosyasını kullanabilirsiniz:

<IfModule mod_rewrite.c>
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} ^Express WebPictures 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb
! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^GoAheadGotIt 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView 
[OR]
RewriteCond %{HTTP_USER_AGENTHTTrack [NC
,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Stripper 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Sucker 
[OR]
RewriteCond %{HTTP_USER_AGENTIndy Library [NC
,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET 
[OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja 
[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} ^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} ^pcBrowser 
[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
]
</
ifModule
>

Alıntıdır

Leave a Comment