Joomlatime

Joomla Destek Sitesi



Mod rewrite ile htacces kullanımı PDF Yazdır e-Posta

Php sitelerin sihirli dosyası htacces ile yapabileceklerinizi biliyormusunuz? Şimdi en gerekli ve kullanılabilir özelliklere bir göz atalım.

1. Klasörlere Erişim

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
Kod:
#deny all access deny from all
yazmanız yeterli. Eğer bu klasöre yalnızca belirlediğiniz ip adresiyle veya ip bloğu tarafından erişilmesini istiyorsanız
Kod:
#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
yazmanız yeterli. Tek bir dosya için erişimi engellemek için ise yazmanız gereken şu:
Kod:
 Order allow,deny Deny from all 
2. Klasör Listelemek

Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor:
Kod:
Options +Indexes +MultiViews +FollowSymlinks  IndexOptions FancyIndexing 
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:
Kod:
IndexIgnore *
3. Sıkıştırma

Sitenizin bant genişliğini (bandwidth) korumak için bir php özelliği olan veri sıkıştırmayı kullanabilirsiniz. .htaccess dosyasına şunu eklemelisiniz:
Kod:
 php_value zlib.output_compression 16386 
4. Dosyaları Gizlemek

Belirli dosyalara erişimi engellemek için Files direktifiyle birlikte Regular Expression kullanabilirsiniz. Örnek olarak konfigürasyon dosyalarına, robot.txt’e veya log’lara erişimi engellemek isteyebilirsiniz. Aşağıdaki örnek klasördeki .ht ile başlayan dosyalara erişimi engellemektedir.
Kod:
 Order allow,deny Deny from all Satisfy All 
5. Özel HTTP 404 Hata Sayfası

Ziyaretçileriniz “404: Sayfa Bulunamadı” hatasıyla karşılaşacaklarında sizin istediğiniz bir dosyaya yönlenmelerini sağlamak için şu kodu kullanın:
Kod:
ErrorDocument 404 /errors/notfound.html
u ş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.

6. Hotlinking’i Engellemek

Hotlinking basitçe sizin sitenizdeki bir resmi, 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 nohotlink.gif adında bir resim dosyası gönderen şu koda bakalım:
Kod:
 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] 
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.

7. Kötü Bot’ları Engellemek

Sitenizi kullanan veya tamamen indirmek isteyen bot’lara karşı .htaccess dosyasını kullanabilirsiniz:
Kod:
 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} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy\ 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] 
no-www Desteği

Siz de sitelerde www subdomain’inin kullanılmasına karşıysanız bu kod işinizi görecektir:
Kod:
 Options +FollowSymlinks RewriteEngine on RewriteCond %{http_host} ^www\.example\.com[nc] RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc] 
9. 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.
Kod:
# Make PHP code look like unknown types AddType application/x-httpd-php .133t
10. Değişik İpuçları
  • .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.
11. .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 şu adresi kullanabilirsiniz.
  • 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:
Kod:
AuthUserFile /home/pathto/.htpasswd AuthType Basic AuthName “My Secret Folder”   require valid-user 
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.

12. Öntanımlı Sayfayı Değiştirmek

Ö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
12. Adres değişiklikleri
Web sitenizde dizin yada klasör değişikliğine gittiniz yada domaininizi değiştirdiniz. bir konumdaki dosya linklerinizi başka bir konuma yönlendirmek istiyorsunuz yada arama motorları sitenizi www,siteniz.com ve siteniz.com olmak üzere iki şekildede indeksleyerek kopya sayfalar oluşturuyor. işte burada htaccess 301 Redirect, yönlendirme giriyor devreye.
www olmayan site adresinizi www olan adrese yönlendirmek isterseniz, ya da www olanı siteadresi.com'a yönlendirmek isterseniz, bunu Apache sunucularda eniyi şekilde htaccess dosyanıza 301 yönlendirmelerini ekleyek yapmanız heryönden avantajlı ve mantıklıdır.

siteadresi.com olan adresinizi herzaman www ile başlamasını isterseniz anadizinimizdeki .htaccess dosyasına 301 Redirect yönlendirme komutunu şu şeklide yazabilirsiniz.

 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www.siteadresi.com/$ [NC]
RewriteRule ^(.*)$ http://www.siteadresi.com/$1 [L,R=301]
IfModule

Eğer ki htaccessin tersi bir durumu ifa etmesini istersek ana dizininiz içindeki .htaccess dosyası içine


 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^siteadresi.com/$ [NC]
RewriteRule ^(.*)$ http://siteadresi.com/$1 [L,R=301]
IfModule

komutlarını yazabiliriz.

Birde klasör ve dizin işlemleri için htaccess 301 Redirect yönlendirme uygulaması kullanımı var herşeyi ile aynı. diyelimki bir forum sitemiz var ve kurulu olsuğu yer forumadresi.com/forum biz bu forumu forum sitesini forumadresi.com a taşıdık fakat arama motorlarında hala forum dizini altında görünüyor. ozaman kullanacak olduğumuz htaccess 301 yönlendirme komutu şu şekilde olmalıdır.



 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www.siteadresi.com/eskisite/$ [NC]
RewriteRule ^(.*)$ http://www.siteadresi.com/$1 [L,R=301]
IfModule

www lu yada www suz yazmak size kalmış bişey.

birde yeni bir domain aldınız eski domaininizdeki tüm veriler, dosyalar yeni domaininizde mevcut ve yeni domaininizi kullanmak istiyorsunuz. ozaman yapacağınız 301 yönlendirme şekli ise eski domaininizin htaccess dosyası içine koyacağınız 301 yönlendirme kodu şu şekilde olmalıdır.


 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www.eskidomain.com/$ [NC]
RewriteRule ^(.*)$ http://www.yenidomain.com/$1 [L,R=301]
IfModule

Htaccess ile 301 Redirect yönlendirme kullanımı gayet basit ve tutarlı bir yönlendirme olup sadece apache sunucularında çalışmaktadır.

 
Developed by JoomVision.com

Üye Girişi



Son Yorumlar

Anket

Joomlatime da hangi bölümleri daha çok kullanıyorsunuz?
 


jtmanset

Val Simple poll

Val Simple poll

Çok kullanışlı ve basit bir anket modülü... Devamını oku

Paymentplus

Paymentplus

Ücretli kayıt vs hizmeti veren joomla siteler için gelecek vadeden bir eklenti.. Devamını oku

Edwic Minicart

Edwic Minicart

Sitenize çok kolay bir yolla sepet eklemenizi sağyacak şık bir eklenti daha.. Devamını oku

Kaltura Video eklentisi

Kaltura Video eklentisi

Joomla için yepyeni bir video eklentisi.. Devamını oku

EmbenVA Plug

EmbenVA Plug

156 ayrı websitesinden video embed yapabileceğiniz kullanışlı bir plugin.. Devamını oku

Tictagvideo plugin

Tictagvideo plugin

Youtube ve facebooktan link ID ile flv ve mp4 leri de video linki ile yayınlayan bir plugin. Devamını oku

Quber modül

Quber modül

Çok kullanışlı ve çok amaçlı bir modül. Kesinlikle tavsiye ederiz..   Devamını oku

Art Total Menü

Art Total Menü

Hiyerarşik bi şekilde menü yayınlayabileceğiniz şık bir modül Devamını oku

Go tot top plug

Go tot top plug

Sitenizde uzun içeriklerde sitenin başına yönlendiren plugin.. Devamını oku

Kategori menüsü

Kategori menüsü

Kategorilerinizi bir menüde içerik sayısı ile gösterebileceğiniz kullanışlı bir modül... Devamını oku



Popüler Üyeler