TUNCAY YILDIRIM - - .htaccess Nedir? En Çok Kullanılan .htaccess Kodları

TUNCAY YILDIRIM

.htaccess Nedir? En Çok Kullanılan .htaccess Kodları

09 April, 2024 | INTERNET

.htaccess Nedir?
Gerektiğinde web sitenizin taranabilir, dizine eklenebilir olmasını ve hızlı bir şekilde yüklenmesini sağlayarak SEO’ya yardımcı işlevsel bir araç yerine geçen .htaccess dosyası, web sitenizin yönlendirmeler ve IP yönetimi gibi bileşenlerini yapılandırmak için kullanılan bir metin dosyasıdır.

.htaccess Nasıl Çalışır?
Web sitenizin her bir dosyası, sunucunuzdaki bir dizinde bulunur ve bir dizindeki .htaccess dosyasında yapılan düzenlemeler yalnızca o dizindeki sayfaları etkiler. Ancak .htaccess dosyasını web sitenizin kök dizinine yerleştirirseniz, dosyanın yapılandırmaları sitenizdeki tüm URL’ler için geçerli olur.

.htaccess (hypertext access), kullanıcı adlarını ve parolaları kullanan kişilerin dizinlere erişimine izin vermek ve bunları kısıtlamak için Apache sunucusunun http.config yönergelerini kullanır.

Web sitenizin .htaccess dosyasını kullanmak, sitenizi kullanıcılarınız için yapılandırmanın işlevsel bir yolu olsa da sitenizin performansını etkileyebileceğinden dosyada herhangi bir değişiklik yaparken dikkatli olunmalıdır. Herhangi bir deneme yapmadan önce, .htaccess dosyasının ve web sitenizin yedeğini almanız tavsiye edilir.

Sunucunuz, bir sayfa her yüklendiğinde, .htaccess dosyası da dahil olmak üzere sayfanın dizinini tarar. Web sitenizin .htaccess dosyasına erişimi olan herkes, sunucu yapılandırması üzerinde tam denetime sahiptir. Yapılan herhangi bir değişikliğin anında yayınlanacağı düşünülürse bu büyük bir güvenlik riski oluşturabilir, .htaccess dosyanızdaki hatalar web sitenizi erişilmez kılabilir.

.htaccess Dosyasına Nasıl Erişebilirsiniz?
.htaccess dosyasına hosting hesabınızın dosya yönetiminden (cPanel gibi) ya da sFTP veya FTP istemcisinden erişebilirsiniz. WordPress kullanıcısıysanız, .htaccess dosyasına Yoast gibi eklentilerle ulaşabilirsiniz.

.htaccess dizin düzeyinde bir yapılandırma olduğundan, web dizininizdeki hemen hemen tüm klasörlerde bu dosyayı bulabilirsiniz. Birden çok alt dizine sahip tek bir web dizininiz varsa, .htaccess dosyası kök dizinde ve her alt dizinin içinde bulunabilir.

.htaccess dosyası genellikle web sitenizin public_html klasöründedir. Ancak, çoğu zaman gizlidir. Eğer .htaccess dosyasını public_html klasöründe bulamadıysanız, “Gizli Dosyaları Göster” seçeneğini işaretlemeniz gerekebilir. Buna rağmen .htaccess dosyasını bulamazsanız, manuel olarak bir tane hazırlayıp web sunucunuza yüklemeniz gerekebilir: Basitçe bir .htaccess dosyası oluşturma adımları aşağıdaki gibidir:

Not defterini açın.
Yapılandırmayı yazın.
Dosyayı .htaccess dosya adıyla ASCII’ye kaydedin. Dosyanın .txt biçiminde kaydedilmediğinden emin olun.
.htaccess dosyasını web dizininize yüklemek için bir FTP istemcisi kullanın.
.htaccess Dosyasının Kullanım Alanları
Hemen hemen tüm Apache sunucularının önceden ayarlanmış bir yapılandırma dosyası bulunur ancak bu, tüm site için geçerlidir ve bu nedenle dizin düzeyinde yapılandırmayı ayarlamak zordur. Apache yapılandırma ayarlarını geçersiz kılmak için .htaccess’i kullanarak dizin ve alt dizin düzeyinde yapılandırmayı ayarlayabilirsiniz.

Geliştiricilerin, web sitelerinin yüklenme veya görüntülenme şeklini yapılandırmak için kullandığı .htaccess dosyalarının en yaygın kullanımları arasında URL’leri yeniden yönlendirmek, özel 404 sayfası oluşturmak, web sitelerine IP adresi erişimini yönetmek, önbelleğe almayı etkinleştirmek, HTTP başlıklarını güncellemek, taramayı kontrol etmek ve URL’leri SEO dostu yapmak sayılabilir.

.htaccess Dosyası Düzenleme
Bir .htaccess dosyası oluşturmadan veya düzenlemeden önce bilmeniz gereken tıpkı web sitenize güç sağlayan HTML kodu gibi, .htaccess dosyanızın da belirli kurallara uyması gerektiğidir. İlk olarak web sitenizin etkin bir .htaccess dosyasına sahip olduğundan emin olmalısınız. Sunucu ayarlarınız, .htaccess dosyasının mevcut web sitesi yapılandırmalarınızı geçersiz kılmasına manuel olarak izin verme seçeneği içermelidir.

Bir .htaccess dosyası oluşturmak ya da düzenlemek için yapmanız gerekenler; metin düzenleyici kullanmak, Apache programlama dilinde yazmak, dosyayı “.htaccess” adıyla kaydetmek ve FTP istemcisi aracılığıyla dosyayı sitenize yüklemektir.

Yapılandırmalarınızın dosyanın bulunduğu dizindeki tüm sayfalara uygulanacağını unutmamalı, bu nedenle .htaccess dosyanızı yerleştirdiğiniz yere dikkat etmelisiniz. Programlama ve kodlama konusunda deneyimli değilseniz, yardımcı olması veya web sitenizin sunucularını yapılandırmanın başka yollarını bulması için bir uzmandan destek alabilirsiniz.

.htaccess Dosyası ile URL’ler Nasıl Yeniden Yönlendirilir?
URL’leri yeniden yönlendirmek, genellikle eski URL artık etkin olmadığı için bir URL’yi diğerine yönlendirmek anlamına gelir. Böylelikle eski URL’ye gelen ziyaretçiler ve tarayıcılar yeni URL’ye götürülür.

.htaccess kullanarak URL’leri çeşitli şekillerde yönlendirebilirsiniz. Örneğin, alan adınızı farklı bir alan adına yönlendiriyorsanız, .htaccess dosyanıza aşağıdakileri ekleyebilirsiniz:

Redirect 301 "/service" " https://yenidomain.com/service"
.htaccess ile URL Yeniden Yazma
Rewrite / Yeniden yazma, hedef URL’yi başka bir URL’ye yönlendirdiği için yeniden yönlendirmelere benzer. .htaccess dosyası, bir web sitesinin erişilebileceği, engellenebileceği ve yeniden yönlendirilebileceği çeşitli yolları kontrol eder. Bunu bir veya daha fazla yeniden yazma kuralı kullanarak yapar. Yeniden yazmalar, Apache’nin mod_rewrite modülü tarafından mümkün kılınır. Örneğin; example.com/1.html’yi example.com/abc.php?id=1 olarak yeniden yazmak istersek gereken kod aşağıdaki şekilde olacaktır:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]
Buradaki kuralların açıklamaları şu şekildedir:

([0-9]+) >herhangi bir rakama 1 veya daha fazla kez izin verir.
[QSA,L] > bunu dahili komut dosyası sorgu dizenize ekler ve onu yürütülen son yeniden yazma kuralı yapar.
([a-z-]) > herhangi bir küçük harfe izin verir, sözcük ayrımı için “-” gerekirse / birkaç kez kullanılır, büyük harfleri de desteklemesini istiyorsanız, “([a-zA-Z-]) yazabilirsiniz örneğin:
RewriteRule ^place/([a-zA-Z-]*).html /place/abc.php?id=$1 [QSA,L]
Eğer index.php için var olmayan bağlantıları yeniden yazmak istersen aşağıdaki kodu kullanabilirsiniz:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
.htaccess ile Tek Bir Sayfa İçin 301 Yönlendirmesi Yapma
.htaccess Dosyası Düzenleme
.htaccess dosyanızdaki hatalar web sitenizi erişilmez kılabilir.
.htaccess dosyaları aracılığıyla gerçekleştirilebilecek yönlendirme türlerinden biri 301 (kalıcı) yönlendirmesidir. 301, eski bağlantının (yönlendirilen URL) artık kullanımda olmadığını gösterir.

301 yönlendirmeleri için metin/belge düzenleyicinizi açmanız, yeni bir boş dosya oluşturmanız ve ilgili kodu belgeye eklemeniz gerekir. Dosyayı “htaccessrules.txt” olarak kaydedip FTP veya SFTP istemcinizi kullanarak web sitenizin public_html dosyasına yükleyin. Belgeyi yükledikten sonra, .htaccess olarak yeniden adlandırmanız yeterlidir.

Tek bir sayfa URL’sini (html/php dosyası) diğerine yönlendirmek için aşağıdaki kodu kullanabilirsiniz:

Redirect 301 /eskisayfa.html http://www.siteniz.com/yenisayfa.html
.htaccess ile Özel bir 404 Hata Sayfası Oluşturma
Web sitenizdeki 404 hataları için, markanıza ait bir 404 sayfası oluşturmanız daha profesyonel görünecektir. .htaccess kullanarak özel bir 404 sayfası hazırlamak isterseniz önce bir web sayfası oluşturmanız ve kodu .htaccess dosyanıza yüklemeniz gerekir:

ErrorDocument 404 /error/pagenotfound.html
Sayfanın konumunu 404 sayfanızın konumuyla değiştirmelisiniz.

HTTPS’yi .htaccess İle Yönlendirme
Bilindiği üzere HTTPS, tarayıcı ile web siteniz arasındaki iletişimi şifreleyen, güvenli veri yüklemenin popüler yoludur. RewriteEngine modülü açık olduğu sürece .htaccess ile HTTP yerine HTTPS kullanabilirsiniz.

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.alanadiniz.com/$1 [R=301,L]
.Htaccess ile Hotlink Koruması
Hotlink, birisi sitenizdeki içeriği başka bir siteye doğrudan bağladığında ve dosyaları sunmak için bant genişliğinizi kullandığında örneğin, birisi sunucunuzda barındırılan bir görseli kendi web sayfalarında görüntülediğinde oluşur. Bunun olmasını önlemek için .htaccess’te HotLink korumasını etkinleştirebilirsiniz:

RewriteEngine on
# Boş yönlendireni de engellemek istiyorsanız aşağıdaki satırı kaldırın
RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?alanadiniz.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]
Uzantıları Kaldırma
.php uzantısını bir PHP dosyasından kaldırmak için, aşağıdaki kodu .htaccess dosyasına eklemeniz gerekir:
RewriteEngine On
RewriteCond % !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
HTML dosyasındaki bir .html uzantısından kurtulmak istiyorsanız, örneğin example.com/content.html’i example.com/content’e dönüştürmek için aşağıdaki kodu htaccess dosyasına eklemelisiniz:
#remove html file extension https://example.com/page.html
# to https://example.com/page
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC, L]
Tek Bir Dosyayı Parola ile Koruma
Aşağıdaki satırları .htaccess dosyasına ekleyerek sunucunuzdaki tek bir dosyaya sınırlı erişim verebilirsiniz.

İlk adımda aşağıda MYFILE.html > korumak istediğiniz dosyanın adı, APPNAME > uygulamanızın adı yerine kullanılmıştır:
<Files MYFILE.html>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile /srv/users/SYSUSER/apps/APPNAME/public/.htpasswd
Require valid-user
</Files>

2. İkinci adım .htpasswd dosyası oluşturmaktır, eğer zaten bir .htpasswd dosyası oluşturduysanız, sonraki adıma geçebilirsiniz. .htpasswd dosyanızı oluşturmak için APPNAME’i uygulamanızın adıyla değiştirerek aşağıdaki komutu çalıştırın.

touch ~/apps/APPNAME/public/.htpasswd
3. Üçüncü adım kullanıcı adı ve şifre atamanızı gerektirir. Bunun için htpasswd-sp komutunu kullanın.

htpasswd-sp ~/apps/APPNAME/public/.htpasswd adiniz
Yeni şifreyi eklemek için komut satırındaki istemleri takip edin. Bundan böyle dosyayı tarayıcınız aracılığıyla her ziyaret ettiğinizde, kullanıcı adı ve şifre girmeniz istenecektir.

Özet
Özelleştirilmiş 404 sayfaları eklemek ve URL yönlendirmeleri oluşturmak gibi amaçlar için kullanılan .htaccess dosyasının; SEO için bir nimetLS