.htaccess kullanımı ve ipuçları - kim lan bu .htaccess -

Page 1

12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

.htaccess kullanımı ve ipuçları – kim lan bu .htaccess??? –  hicabi  4 saat Önce  ipucu, Teknoloji  27 Görüntülenme

Htaccess dosyası (Hypertext Access File) üzerinde çok farklı ayarlar ve kombinasyonlar yapılabilme imkanı olan ve özelleştirilebilir bir dosyadır. .htaccess dosyası üzerinde gerekli uygulamaların yapılması için değişik kodlamaların kullanılması gerekmektedir. Htaccess dosyası, sunucu üzerinde klasör düzeyinde önemli ayarlamaları aktifleştirmek için kullanılan özelleştirilebilir bir dosyadır. Htaccess dosyası üzerinde yanlış kullanılan bir kod yapısı nedeniyle site açılmayabilir, sitede bazı sayfalara erişim sağlanmayabilir. Bu nedenle .htaccess dosyasına müdahale yaparken dikkatli olmak gerekir.

Peki bu Htaccess Dosyası Ne İşe Yarar? SEO uyumlu link yapısı ve düzeni oluşturulabilir. Hotlink engellemesi yapılabilir. Dizindeki dosyalar gizlenebilir. Hata sayfaları yapılabilir. Spam botları engellenebilir. Site URL’sinin başına “www” eklenilebilir. Dosya şifrelenmesi ve şifre korunması gibi farklı güvenlik işlemleri yapılabilir. IP engelleme işlemi yapılabilir. Bir domain başka bir domaine yönlendirilebilir. Veri sıkıştırma işlemi yapılabilir. Bakım sayfası oluşturulabilir. https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 1/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

Bu gibi birçok işlemleri .htaccess dosyası ile gerçekleştirebilirsiniz. Her türlü amaca uygun olarak kullanılabilen ve özelleştirilebilen kapsamlı bir dosyadır.

503 Service Unavailable Hatası 503 servis kullanım dışı karşılaştığınız hata büyük bir olasılıkla .htaccess dosyasında yaptığınız yanlışlık veya bir hatadan kaynaklanmaktadır. Tam olarak problemin nereden kaynaklandığını maalesef bilemiyorum. Çünkü; bu tarz problemler genellikle yapılan yazılımdan yazılıma değişmektedir. Sizlere bu konu hakkındaki önerim .htaccess dosyanızı geçici olarak ana dizinden başka bir yere taşıyıp Web sitenizin çalışıp çalışmadığını kontrol edin eğer kaldırdıktan sonra web sayfanız öyle yada böyle açılıyorsa problem .htaccess dosyasında olduğunu anlamış olacaksınız. Problem devam ediyorsa Web servis sağlayıcınıza danışmanızı veya hatanın kaynağını başka bir yerde aramanızı öneririm.

.htaccess Dosyasının SEO ile ilişkisi 1. 301 Yönlendirmeleri 301 yönlendirmeleri aslında kalıcı URL yönlendirmeleridir. Hem web kullanıcılarını hem de arama motorunun botlarını, değiştirdiğiniz sayfalara yönlendirme işine yaramaktadır. Arama motorları eski ve yeni web sayfalarını aynı anda taramak durumunda kalmaz ve bu sebeple yinelenmiş içerik sorunu ortadan kaldırılmış olur.

2. Dinamik URL – Statik URL Yönlendirmesi URL’nin SEO uyumlu olabilmesi için öncelikle okunabilir olması gerekmektedir. Yani eğer bir web sayfasının URL’sini gördüğünüzde hem kolay okunabilirse hem de okuduğunuzda içeriğinin ne ile alakalı olduğunu anlayabiliyorsanız, bu URL SEO uyumlu demektir.

3. Aynı Ana sayfayı Açan URL Sorunları Web sitenizin ana sayfasını yalnızca 1 URL açmalıdır aksi durumda yinelenen içerik sıkıntısıyla başınız belaya girecektir. Bu durum da SEO açısından olumsuz sonuçlar ortaya çıkaracaktır. Konuyla alakalı en çok kullanılan örnekler olarak; İndex.php yönlendirmesi ve subdomain yönlendirmesi en sık karşılaşılan hatalardır.

4. 404 Sayfaları Sizin kontrolünüzde silinen sayfalara kullanıcılar ulaşmaya çalıştıklarında 404 hata sayfalarıyla karşılaşmaktadırlar. 404 sayfalarının en doğru şekilde oluşturulması ve .htaccess dosyalarına doğru şekilde tanıtılması gerekmektedir. Eğer bunlar yapılmazsa web sayfaları yönlendirmeye sebep olur ve SEO açısından zarar görmüş olursunuz.

Htaccess Örnekleri Web sitesinde yapılabilecek temel .htaccess kodlarından sizlere aşağıda örnekli olarak bahsetmek istiyorum. Mutlaka işinize yarayacaktır.

Sayfalar Üzerinde Değişiklik Yapılması Sayfamızın Url yapısını değiştirme iznini verdiğimiz kod aşağıdaki gibidir. 1

Options +FollowSymLinks

2

RewriteEngine on

404 Sayfasına Yönlendirme Hata sayfalarına yönlendirmemiz gerektiği zaman aşağıdaki kodu .htaccess dosyasına ekleyebilirsiniz. https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 2/15


12.12.2018

1

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

ErrorDocument 404 /404.php

Site Haritası Yönlendirme Siteharitasının .php dosyasıyla oluşturduğunuz zaman arama motorlarının .xml formatında görmesini sağlamının yolu aşağıdaki gibidir. 1

RewriteRule ^sitemap.xml sitemap.php

İsme göre Sayfa Oluşturma Veri tabanındaki isme göre sayfaya GET parametresi gönderebildiğimiz kod aşağıdaki gibi kullanılabilir. 1

RewriteRule ^([a–zA–Z0–9_–]+)/?$ pages.php?sayfa=$1 [L,NC]

Sabit Sayfa Oluşturma Sabit sayfalarımızda kullanılabilecek .htaccess kodu. 1

RewriteRule ^iletisim/?$ contact.php

2

RewriteRule ^iletisim?$ contact.php

Web Sitesi Önbellek Çalışması

Web sitemizin önbellekleme arama motoru optimizasyonu için önemli olabilecek .htaccess kod bloğu. 1

#Gzipleme Açma işlemi

2

<ifmodule mod_deflate.c>

3

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x–javascript

4

application/javascript

5

BrowserMatch ^Mozilla/4 gzip–only–text/html

6

BrowserMatch ^Mozilla/4\.0[678] no–gzip

7

BrowserMatch \bMSIE !no–gzip !gzip–only–text/html

8

</ifmodule>

9

#1 Aylık Önbellekme Süresi

10 <ifmodule mod_expires.c> 11 ExpiresActive On 12 ExpiresDefault “access plus 2678400 seconds” 13 ExpiresByType text/html “access plus 7200 seconds” 14 ExpiresByType image/gif “access plus 2678400 seconds” 15 ExpiresByType image/jpeg “access plus 2678400 seconds” 16 ExpiresByType image/png “access plus 2678400 seconds” 17 ExpiresByType text/css “access plus 750000 seconds” 18 ExpiresByType text/javascript “access plus 2678400 seconds” 19 ExpiresByType application/x–javascript “access plus 2678400 seconds” 20 </ifmodule> 21 #Önbellekleme Modülü 22 <ifmodule mod_headers.c> 23 #1 Aylık Özel Dosyaları Önbellekleme 24 <filesmatch “\.(ico|flv|jpg|jpeg|png|gif|css|swf)$”> 25 Header set Cache–Control “max-age=2678400, public” 26 </filesmatch> 27 #Saatlik HTML sayfaları önbellekleme https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 3/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

28 <filesmatch “\.(html|htm)$”> 29 Header set Cache–Control “max-age=7200, private, must-revalidate” 30 </filesmatch> 31 #günlük Pdf önbellekleme 32 <filesmatch “\.(pdf)$”> 33 Header set Cache–Control “max-age=86400, public” 34 </filesmatch> 35 #1 Aylık Js Dosyaları Önbellekleme 36 <filesmatch “\.(js)$”> 37 Header set Cache–Control “max-age=2678400, private” 38 </filesmatch> 39 </ifmodule> 40

bunlara ek olarak

Htaccess ile Neler Yapılabilir? Klasörlere erişim: Herhangi bir klasöre olan erişimi engellemek isterseniz, .htaccess dosyasının içine #deny all access yazmanız yeterli olacaktır. Program kaynak kodlarının barındırıldığı bir klasöre, internet üzerinden değil sadece dosya sisteminden erişilmesini isterseniz, bu kodu kullanabilirsiniz. Ayrıca, herhangi bir klasöre sadece belirlenen ip adresinin veya ip bloğunun erişmesini de sağlayabilirsiniz. Klasör listelemek: Klasörde bulunan dosyaların listelenmesini isterseniz, htaccess dosyasına şunları yazmalısınız; Options +Indexes +MultiViews +FollowSymlinks IndexOptions FancyIndexing Sunucunuzda autoindex modülü yüklü değilse, bu kod işe yaramayacaktır. Bundan dolayı modülün yüklü olması gerekmektedir. Klasörünüzdeki ön tanımlı listelemeyi ertelemek için de IndexIgnore * satırını kullanmanız yeterlidir. Sıkıştırma: Web sitesinin bant genişliğini (bandwidth) koruyabilmek için, php niteliği olan veri sıkıştırma özelliğini kullanabilirsiniz. Bunun için htaccess dosyasına şu kodu eklemelisiniz; php_value zlib.output_compression 16386 Özel hata sayfası (http 404): Sitenize gelen ziyaretçilerin, 404 hata sayfasıyla karşılaştıklarında sizin belirlediğiniz bir sayfaya yönlendirilmeleri için; ErrorDocument 404 /errors/notfound.html kodunu kullanın. Dosyaları gizlemek: Herhangi bir dosyaya erişimi engelleyebilmek için, Files komutuyla birlikte Regular Expression komutu kullanılabilir. Örneğin, robots.txt’ye, loglara ya da ayar dosyalarına erişimi engelleyebilirsiniz. Aynı şekilde hata kodlarını özelleştirmekte mümkündür. Dikkat etmeniz gereken bir husus; Internet Explorer (IE), 512 bayttan küçük olan hata sayfaları için kendi bağlantılarını (MSN Search gibi) ziyaretçiye gösterir. Bundan dolayı seçtiğiniz hata sayfasının 512 bayttan büyük olmasına dikkat edin. https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 4/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

Hotlink’i Önlemek: Hotlink, bir web sitesindeki görselin ya da videonun başka bir web sitesinde gösterilmesi durumudur. Böyle bir durumda verisi alınan web site, aşırı miktarda bandwidth harcayabilir. Şayet resim koruması (hotlink) uygularsanız, sitenizin dışından istenen bütün resimleri engellemiş olursunuz. Ancak feedburner gibi bir abonelik hizmeti kullanıyorsanız, hizmetin devam etmesi için kodunuzu değiştirmeniz gerekir. Zararlı botları engellemek: Sitenizi tamamen indirmek isteyen ya da kullanan zararlı botlara karşı htaccess dosyasını kullanabilirsiniz; RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteRule .* – [f] Non www Desteği: Web sitenizde www alt alan adının kullanılmasını engelleyebilirsiniz. Kullanılan dili gizlemek: Dosyaların uzantılarını değiştirerek, htaccess dosyasına kural ekleyebilir ve hangi dili kullandığınızı gizleyebilirsiniz. Tüm bunların dışında, htaccess dosyasının maksimum derecede küçük tutulması gerekir. Çünkü her dosya isteği sunucu tarafından kontrol edilir ve bu da sitenizin yavaşlamasına neden olabilir. Htaccess dosyasının düzenli tutulması da önemli bir durumdur. Kuralların sayısı arttıkça, sunucunun ilgili dosyayı anlaması güçleşecektir. Bir önceki sayfaya yönlenen, bağlantıyı tekrar tanımladığınız kurallara [L] özelliği ekleyin. Böylece sunucunun başka bir kuralı uygulaması önlenebilir. Htaccess komutlarının alt klasör ve dosyalar için de geçerli olduğunu, ayrıca mevcut bir kuralın, üstünde bulunan diğer kuralları da değiştirebileceğini aklınızdan çıkarmayın. Ek olarak htaccess dosyasında birkaç değişiklik yaparak Apache üzerindeki sitenizde gizli klasörler oluşturabileceğinizi, hotlinkingâ i engelleyebileceğinizi, hatta zararlı botâ lardan korunabileceğinizi biliyor muydunuz? Bu yazı Apache .htaccess tweaking tutorial makalesinin Türkçe çevirisi olup bazı eklemeler ve değişiklikler içerebilir. Not: .htaccess (Hypertext Access), Apacheâ nin klasör düzeyinde ayarlara izin veren, genel ayar dosyasındaki direktifleri özelleştirebilen dosyadır. 1. Klasörlere Erişim = Folder Access 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 #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 #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:

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

5/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

Order allow,deny Deny from all 2. Klasör Listelemek = Folder List Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor: 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: IndexIgnore * 3. Sıkıştırma = Bandwidth Compress 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: php_value zlib.output_compression 16386 4. Dosyaları Gizlemek = Folder Hidden 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. Order allow,deny Deny from all Satisfy All 5. Özel HTTP 404 Hata Sayfası = 404 Error Page 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: ErrorDocument 404 /errors/notfound.html Bu ş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 = Hotlink Block 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: 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.

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

6/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

7. Kötü Botâ ları Engellemek = Bot Block Sitenizi kullanan veya tamamen indirmek isteyen botâ lara karşı .htaccess dosyasını kullanabilirsiniz: 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] 8. no-www Desteği = No-WWW Aid Siz de sitelerde www subdomainâ inin kullanılmasına karşıysanız bu kod işinizi görecektir: https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 7/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

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 = Language Hidden 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 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ı = .htpasswd Password Protection İ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: 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. (bkz. 1. başlık) 12. Öntanımlı Sayfayı Değiştirmek = Page Change Öntanımlı sayfa bilgisini aşağıdaki şekilde, sıraya dikkat ederek değiştirebilirsiniz: DirectoryIndex home.html index.htm index.html index.php İnternette SEO dostu url ile ilgi bir sürü kaynak var fakat açıklamaları yeterli düzeyde olmadığı için kodlar çalışmamakta. Öncelikle SEO dostu url demek, web sayfası için tanımlayıcı bilgiler içeren url lerdir. Örneğin: site.com/sayfadetay.php?id=5 yerine site.com/sayfadetay/5/seo-dostu-url-yapimi.html gibi bilgiler içeren url lerdir.

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

8/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

ÖNEMLİ: Eğer bu konuda bilgili değilseniz .htaccess dosyanızın bir yedeğini mutlaka alınız.Yoksa web siteniz çalışmaz. PHP sayfalarımızı site.com/sayfadetay.php?id=5 şeklinde $_GET[id] methodu ile çalışaçakmışız gibi kodlayacağız. SEO dostu url mizin okunmasını .htaccess ile sağlayacağız. SEO dostu url yaparken dikkat edilmesi gerekenler. .htaccess dosyası ile php dosyalarımız aynı klasör içinde olması gerekmekte web sayfasına eklediğiniz resim ve CSS dosyalarının çalışması için oluşturduğumuz PHP sayfalarının tamamına taginden önce PHP tagleri arasında $base tanımlaması yapılması gerekmekte ? $base

1

= http

//:www.site.com/PHPdosyalari; echo $base;

bu kodu eklemezseniz resimleriniz web sayfasında görüntülenmez 404 The page cannot be found gibi hata saylalarıda yapmak isterseniz hata sayfalarınızında aynı dizin içinde bulunması gerekmekte dikkat etmemiz gerken diğer bir konu ise türkçe karakter problemi url mizi Türkçe karakterlerden temizlememiz gerekmektedir, uygun bir kod yapısı oluşturusak Tükçe karakter içeren bir seo dostu url de PHP ye oluşturtabiliriz. url lerdeki Türkçe karakterleri temizleyeceğimiz kod aşağıda Örnek bir .htaccess dosyası verecek olursak 1

Options +FollowSymLinks

2

RewriteEngine On

3

RewriteBase /PHPdosyalari

4

5 ErrorDocument 401 /KlasorAdi/401.php

6 7

ErrorDocument 403 /KlasorAdi/403.php

8

ErrorDocument 404 /KlasorAdi/404.php

9

ErrorDocument 500 /KlasorAdi/500.php

10

11

RewriteRule ^sayfa/([0-9]+)/([a-zA-Z0-9]+)/$ sayfadetay.php?id=

12 13

$1

[NC,QSA,L]

#sayfa ile başlayan linke tıkladığımızda yapılacak işlemleri ifade ediyor /

$1

/

$2

/ karşılık değerleri bu değerler likimiz dorultusunda çoğaltılabilir

RewriteRule ^urun/([0-9]+)/([a-zA-Z0-9]+)/$ urundetay.php?id=

$1

[NC,QSA,L]

https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 9/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem RewriteRule ^kategori/([0-9]+)/$ kategori.php?id=

$1

[NC,QSA,L]

Yazdığımız kodları açıklarsak: RewriteEngine On: Bu komut ile url yönlendirmesini aktif hale getiriyoruz. RewriteBase : Bu komut ile yönlendirmemizin etkili olacağı klasörü belirliyoruz. Örneğin sitemiz www.site.com/PHPdosyalari şeklinde bir dizinde ise kod yapımız RewriteBase /PHPdosyalari şeklinde olacaktır. RewriteRule : Bu komut yönlendirmeyi gerçekleştirecek komutumuzdur. Hangi adresin hangi adrese yönleneceğini bu komut ile belirlenir. # : Yorum satırı. .htacces dosyamızı düzenleken kullanacağımız düzeli ifadelerimizden de bahsedelim: (^) oluşturduğumuz SEO dostu url başlangıç noktasını belirtir ($) oluşturduğumuz SEO dostu url bitiş noktasını belirtir ([a-zA-Z0-9]+) iki / işareti arasında sadece ingilizce olarak rakam ve string karakterlerin geleceğini belirtiyor ([0-9]+) iki / işareti arasına bir veya birden fazla rakamların gelebileceğini belirtiyor Parantez içlerinde kullanılan NC, L ve R harflerinin anlamları: L: Last Bu tanımlanmadan önce ifade edilen kurallar bundan sonrakilere geçmemesini ve karışmamasını sağlar. R: Redirect Bu değer kullanılırsa browserda adres değişir, kullanılmazsa yönlendirme arkaplanda yapılır fakat kullanıcının girdiği URL aynı kalır. NC: No Case Büyük küçük harfe duyarsız davranır. QSA: Query String Append GET metodu ile yönlendirme yaptığımızda yönlendirilen yere sonuna eklenen GET parametrelerini de dahil eder. Diğer tüm ifadeler için buraya bakabilirsiniz. Bütün bu fonksiyonlar için linklerimizi oluşturalım 1

# sayfa için link

2

<a href=

3

"sayfa/<?php echo mysql_result($sayfa,0,sayfaid) ?>/<?php echo SEO(mysql_result($sayfa,0,sayfaadi)) ?>.html"

4

>link 1</a>

5 # urun için link

6 7

<a href=

8

"urun/<?php echo mysql_result($urun,0,urunid) ?>/<?php echo SEO(mysql_result($urun,0,urunadi)) ?>.html"

>link 2</a>

# kategori için link

https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 10/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem <a href=

"kategori/<?php echo mysql_result($kategori,0,kategoriid) ?>/<?php echo SEO(mysql_result($kategori,0,kategoriadi)) ?>.html"

>link 3</a>

burada dikkat etmemiz gereken nokta sayfa, urun, kategori adıyla klasör oluşturmadık burada yaptığımız htaccess dosyamızdabirden fazla url olacağı için bu url leri ayırma işlemi yaptık ^ işareti ile bu ayırımı sağladık. url lerdeki türkçe karakterleri temizleme için yazdığımız fonksiyonumuz 1

function

2

SEO(

3

$s

4

) {

5

6 7

$tr

8

=

9

array

10

(

11

'ş'

12 13

,

'Ş'

,

'ı'

,

'I'

,

'İ'

,

'ğ'

,

'Ğ'

,

'ü'

,

'Ü'

,

'ö'

,

'Ö'

,

'Ç'

,

https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

 11/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem 'ç'

,

'('

,

')'

,

'/'

,

':'

,

','

);

$eng

=

array

(

's'

,

's'

,

'i'

,

'i'

,

'i'

,

'g'

,

'g'

,

'u'

,

'u'

,

'o'

,

'o'

,

'c'

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

12/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem ,

'c'

,

''

,

''

,

'-'

,

'-'

,

''

);

$s

=

str_replace

(

$tr

,

$eng

,

$s

);

$s

=

strtolower

(

$s

);

$s

= preg_replace(

'/&.+?;/'

,

''

,

$s

);

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

13/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem

$s

= preg_replace(

'/s+/'

,

'-'

,

$s

);

$s

= preg_replace(

'|-+|'

,

'-'

,

$s

);

$s

= preg_replace(

'/#/'

,

''

,

$s

);

$s

=

str_replace

(

'.'

,

''

,

$s

);

$s

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

14/15


12.12.2018

.htaccess kullanımı ve ipuçları - kim lan bu .htaccess??? - Hicabi Erdem = trim(

$s

,

'-'

);

return

$s

;

}

.htaccess ile daha başka neler yapabiliriz buradan bakabilirsiniz.

 https://www.hicabierdem.com/htaccess-kullanimi-ve-ipuclari-kim-lan-bu-htaccess

15/15


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.