Joomla Destek Sitesi
| Mod rewrite ile htacces kullanımı |
|
|
|
|
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 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 Kod: Order allow,deny Deny from all Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor: Kod: Options +Indexes +MultiViews +FollowSymlinks IndexOptions FancyIndexing Kod: IndexIgnore * 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 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 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 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] 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] 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] 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
İstediğiniz dosya veya klasörlere şifre eklemek için şu adımları takip edin:
Kod: AuthUserFile /home/pathto/.htpasswd AuthType Basic AuthName “My Secret Folder” require valid-user
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 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. |