X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bilgi Bankası

AnasayfaBilgi BankasıWeb SitesiHTACCESS için Tam Kılavuzu

HTACCESS için Tam Kılavuzu

.HTACCESS için Tam Kılavuzu

.htaccess dosyasının kullanımıyla, Apache web sunucusunun birçok yönünü (ve onun birçok çeşidini) kontrol edebilirsiniz. Aşağıda, özel hata sayfaları, parola korumalı dizinleri, yeniden yönlendirme ve daha fazlasını ayarlamak için bilmeniz gereken her şeyi öğreneceksiniz.

Bu Kılavuz Nasıl Kullanılır

Bu kılavuz, .htaccess kullanımı için kapsamlı bir kaynak olarak hizmet vermek üzere oluşturulmuştur. .Htaccess’i kullanmakta tamamen yeniyseniz, aşağıdaki ilk bölüm olan “.htaccess Temelleri” ile başlamak isteyebilirsiniz.

Belirli kod örnekleri veya öğreticiler arıyorsanız, bu sayfadaki alt bölümlere doğrudan atlamak için bu sayfanın sağ tarafındaki gezinmeye bakın.

.htaccess Temelleri

Komutlara dalmadan önce .htaccess temellerini öğrenelim.

Nedir .htaccess?

.htaccess Dosya bir web sunucusu çeşitli isteklere kontrolleri nasıl tepki bi ayar dosyasıdır. Çoğu ticari web barındırma sağlayıcısı tarafından kullanılan popüler Apache web sunucusu dahil olmak üzere birkaç web sunucusu tarafından desteklenir.

.htaccessdosyalar bir dizin düzeyinde çalışır .htaccessve dizin ağacında daha yüksek yönergelerin genel yapılandırma ayarlarını geçersiz kılar .

.Htaccess Nasıl Kullanılır?

.Htaccess’in bazı yaygın kullanımları arasında URL’lerin yeniden yönlendirilmesi, web siteleri (veya web sitesi sayfaları) için parola korumasının etkinleştirilmesi; özel hata sayfalarının görüntülenmesi (404 sayfa gibi); ve tutarlı bir eğik çizgi politikası aracılığıyla SEO’yu artırmak.

İkinci durumda, web yöneticisi, bir sitedeki her URL’nin sonunda bir son bölüm belirtmeyi isteyip istemediğini seçebilir.

Neden Aranıyor .htaccess?

.htaccess, “hiper metin erişimi” anlamına gelir. Ad, aracın, dizin bazında belirli dosyalara kullanıcı erişimini kontrol etmek olan orijinal kullanımından türetilmiştir.

http.conf .Htaccess, Apache’nin ayarlar yönergelerinin bir alt kümesini kullanarak , bir sistem yöneticisinin tek tek dizinlere erişimi, beraberindeki bir .htpasswd dosyada belirtilen bir ad ve parola ile kullanıcılarla kısıtlamasına izin verdi .

İken .htaccessdosyaları hala bunun için kullanılır, aynı zamanda bu kılavuzda ele alacağımız diğer şeylerin bir dizi için kullanılır.

.htaccess Dosya Nerede ?

Teorik olarak, sunucunuzdaki her klasörde (dizin) bir tane olabilir. Genel olarak, yine de, web kök klasörünüzde bir tane vardır – bu, web sitenizin tüm içeriğini barındıran klasördür ve genellikle public_html veya gibi bir şey olarak etiketlenir www.

Birden fazla web sitesi alt dizini içeren tek bir dizininiz varsa, genellikle .htaccess ana kök ( public_html) dizininde ve ayrıca her alt dizinde (/sitename) bir dosya olacaktır .

Dosyamı Neden Bulamıyorum .htaccess?

Çoğu dosya sisteminde nokta (.) ile başlayan dosya adları gizli dosyalardır . Bu, varsayılan olarak genellikle görünür olmadıkları anlamına gelir.

Ama ulaşmak zor değil. FTP istemcinizin veya Dosya Yöneticinizin “gizli dosyaları göster” için bir ayarı olmalıdır. Bu, farklı programlarda farklı yerlerde olacaktır, ancak genellikle “Tercihler”, “Ayarlar” veya “Klasör Seçenekleri” ndedir. Bazen bunu “Görünüm” menüsünde bulacaksınız.

Ya Dosyam Olmazsa .htaccess?

Her şeyden önce, “gizli dosyaları göster” i (veya eşdeğerini) açtığınızdan emin olun, böylece gerçekten sahip olmadığınızdan emin olabilirsiniz. Genellikle .htaccess dosyalar otomatik olarak oluşturulur, bu nedenle genellikle bir tane olur. Ancak bu her zaman böyle değildir.

Gerçekten bir hesabınız yoksa, kolayca bir tane oluşturabilirsiniz:

  • Düz metin düzenleyicide yeni bir dosya başlatın.
  • Kaydetmek ASCII biçimi (değil UTF-8olarak başka ya da bir şey) .htaccess.
  • Olmadığından htaccess.txt veya bunun gibi bir şeyden emin ol. Dosyanın .htaccess ek dosya uzantısı içermeyen yalnızca adı olmalıdır .

  • FTP veya tarayıcı tabanlı dosya yöneticiniz aracılığıyla uygun dizine yükleyin.

Hata yönetimi

.htaccess Hata belgelerini belirtmek için dosyaları kullanmak çok basittir, bu özellik ile yapabileceğiniz en basit şeylerden biridir.

Hata Kodu Nedir?

Bir web sunucusuna bir talep yapıldığında, genellikle bir belge sunarak (HTML sayfaları olması durumunda) veya bir uygulamaya erişerek ve çıktıyı geri göndererek (İçerik Yönetim Sistemleri ve diğer web uygulamaları).

Bununla ilgili bir şeyler ters giderse, bir hata oluşturulur. Farklı hata türlerinin farklı hata kodları vardır. 404 Belge sunucuda bulunamadığında döndürülen hatayı muhtemelen biliyorsunuzdur.

Bir sunucunun yanıt verebileceği birçok başka hata kodu vardır.

Müşteri Talep Hataları

  • 400 – Kötü İstek
  • 401 – Yetkilendirme Gerekli
  • 402 – Ödeme Gerekli (henüz kullanılmadı)
  • 403 yasak
  • 404 Bulunamadı
  • 405 – Yönteme İzin Verilmiyor
  • 406 – Kabul Edilemez (kodlama)
  • 407 – Proxy Kimlik Doğrulaması Gerekiyor
  • 408 – İstek Zaman Aşımına Uğradı
  • 409 – Çakışan İstek
  • 410 – Gitti
  • 411 – Gerekli İçerik Uzunluğu
  • 412 – Ön Koşul Başarısız
  • 413 – Varlık Çok Uzun İste
  • 414 – Çok Uzun URI İste
  • 415 – Desteklenmeyen Ortam Türü.

Sunucu Hataları

  • 500 – Dahili Sunucu Hatası
  • 501 – Uygulanmadı
  • 502 sunucu hatası
  • 503 Hizmet Kullanılamıyor
  • 504 Geçidi Zaman Aşımı
  • 505 – HTTP Sürümü Desteklenmiyor.

Varsayılan Hata İşleme

Herhangi bir hata işleme türü belirtmezseniz, sunucu yalnızca mesajı tarayıcıya geri gönderir ve tarayıcı kullanıcıya genel bir hata mesajı görüntüler. Bu genellikle ideal değildir.

Hata Belgelerini Belirtme

İşlemek istediğiniz her hata kodu için bir HTML belgesi oluşturun. Bunları istediğiniz gibi adlandırabilirsiniz, ancak neye benzediklerini not-found.html veya basitçe hatırlamanıza yardımcı olacak bir ad vermek yardımcı olur 404.html.

Ardından, .htaccess dosyada her bir hata türüyle hangi belgenin kullanılacağını belirtin.

ErrorDocument 400 /errors/bad-request.html

ErrorDocument 401 /errors/auth-reqd.html

ErrorDocument 403 /errors/forbid.html

ErrorDocument 404 /errors/not-found.html

ErrorDocument 500 /errors/server-err.html

Her direktifin kendi satırına yerleştirildiğine dikkat edin.

Ve bu kadar. Çok basit.

Alternatifler için .htaccess Hata İşleme için

WordPress ve Drupal gibi çoğu İçerik Yönetim Sistemi (CMS) ve çoğu web uygulaması, bu hata kodlarının çoğunu ele almak için kendi yöntemlerine sahip olacaktır.

.Htaccess ile Parola Koruması

.htaccess Dosyaların asıl amacı, belirli dizinlere erişimi kullanıcı bazında kısıtlamaktı (dolayısıyla ad, köprü metni erişimi ). Bu yüzden önce buna bakacağız.

.htpasswd

.htaccess Sistemin kullanıcı adları ve parolaları bir dosya adında saklanır .htpasswd.

Bunların her biri tek bir satırda şu şekilde saklanır:

username:encryptedpassword

Örneğin:

johnsmith:F418zSM0k6tGI

Dosyada depolanan parolanın oturum açmak için kullanılan gerçek parola olmadığının bilinmesi önemlidir. Daha ziyade parolanın kriptografik bir karmasıdır .

Bu, parolanın bir şifreleme algoritmasından geçirildiği ve sonucun saklandığı anlamına gelir. Bir kullanıcı oturum açtığında, düz metin parolası girilir ve aynı algoritma ile çalıştırılır. Giriş aynıysa, parolalar eşleşir ve kullanıcıya erişim izni verilir.

Şifrelerin bu şekilde saklanması onları daha güvenli hale getirir – eğer birisi .htpasswd dosyanıza erişim kazanırsa , orijinalleri değil, sadece karma şifreleri görecektir. Ve orijinalleri hash’den yeniden yapılandırmanın bir yolu yoktur – bu tek yönlü bir şifrelemedir .

Birkaç farklı hash algoritması kullanılabilir:

  • Güvenli Algoritmalar – Şunlardan birini kullanın
    • bcrypt – Bu en güvenli, ancak hesaplaması en yavaş olanıdır. Apache ve Nginx tarafından desteklenmektedir.
    • md5 – Bu, Apache’nin mevcut sürümleri tarafından kullanılan varsayılan karma algoritmadır. Nginx tarafından desteklenmemektedir.
  • Güvensiz Algoritmalar – Bunları kullanmayın
    • crypt () – Bu, varsayılan hashing işleviydi, ancak çok güvenli değil.
    • SHA ve Tuzlu SHA.

Komut Satırında Kullanıcı Adları ve Parolalar Oluşturma

.htpasswd Doğrudan komut satırından veya SSH terminalinden bir dosya oluşturabilir ve ona kullanıcı adı-şifre çiftleri ekleyebilirsiniz.

.htpasswd Dosya ile ilgilenme komutu basittir htpasswd.

Yeni bir .htpasswd dosya -coluşturmak için (oluşturma için) seçeneğiyle komutu kullanın , ardından dizinin yolunu yazın (URL’yi değil, sunucudaki gerçek yolu). Eklemek istediğiniz bir kullanıcıyı da dahil edebilirsiniz.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

Bu .htpasswd/etc/dizinde yeni bir dosya oluşturur ve adlı bir kullanıcı için bir kayıt ekler johnsmith. MD5 şifrelemesini kullanarak sizden de saklanacak bir parola istenecektir.

.htpasswd Belirtilen konumda zaten bir dosya varsa, yeni bir dosya oluşturulmaz – yeni kullanıcı basitçe mevcut dosyaya eklenir.

Bcrypt hash algoritmasını kullanmayı tercih ediyorsanız, -b seçeneği kullanın.

Komut Satırı Olmadan Parola Karıştırma

Komut satırını veya SSH terminalini kullanmakta kendinizi rahat hissetmiyorsanız (veya herhangi bir nedenle ona erişiminiz yoksa), basitçe bir .htpasswd dosya oluşturabilir ve bir düz metin düzenleyicisi kullanarak onu doldurabilir ve FTP yoluyla yükleyebilirsiniz. veya dosya yöneticisi.

Ama sonra, htpasswd komut sizin için bunu hallettiği için şifrelerinizi bir şekilde şifrelemeniz gerekecek .

.htpasswd Çevrimiçi olarak kullanılabilen birçok şifreleme aracı vardır. En iyisi muhtemelen Aspirine.org’daki htpasswd oluşturucusudur .

Bu size karma algoritma ve parola gücü için birkaç seçenek sunar. Çıktıyı oradan kopyalayıp .htpasswd dosyanıza kolayca yapıştırabilirsiniz .

Nereye .htpasswd

Her .htpasswd dosya için ayrı bir dosyanızın olması gerekmez .htaccess. Aslında yapmamalısın. Çoğu normal durumda, web barındırma hesabınızın tamamı veya ana sunucu dizininiz için bir tane bulundurmanız gerekir.

.htpasswd Dosya gerektiğini değil , herkese açık bir dizinde olması – değil public_html ya www ya da herhangi bir alt dizin. Yalnızca sunucunun kendisinden erişilebilen bir klasörde, bunların üzerinde olmalıdır.

Nasıl Kullanım için .htpasswd ile.htaccess

Her dizinin .htaccess kendisine erişmesine izin verilen kendi kullanıcı grubu ile kendi dosyası olabilir.

Herhangi birinin (oturum açmamış kullanıcılar dahil) dizine ve dosyalarına erişmesini istiyorsanız, hiçbir şey yapmayın – bu varsayılandır.

Erişimi kısıtlamak için aşağıdakileri .htaccess dosyaya eklemeniz gerekir :

AuthUserFile /usr/local/etc/.htpasswd

AuthName "Name of Secure Area"

AuthType Basic

require valid-user

İlk satır, kullanıcı adları ve parolalar listenize giden yolu ve dosya adını belirtir. İkinci satır, güvenli alan için bir ad belirtir. Bu sevdiğin herhangi bir şey olabilir. Üçüncü satır, genellikle ihtiyacınız olan “Temel” kimlik doğrulamayı belirtir.

Sınırlı olmak ne etiketi belirtir (bu durumda, yetenek dizindeki herhangi bir dosyaya GET veya POST için). Etiket çiftinin içinde dosyalara kimlerin erişmesine izin verildiğinin bir listesi bulunur.

Yukarıdaki örnekte, herhangi bir geçerli kullanıcı dosyalara erişebilir. Belirli bir kullanıcıya veya birkaç kullanıcıya erişimi kısıtlamak istiyorsanız, onlara ad verebilirsiniz.

AuthUserFile /usr/local/etc/.htpasswd

AuthName "Name of Secure Area"

AuthType Basic

require user johnsmith

require user janedoe

Ayrıca kullanıcıları gruplara ayırabilir ve gruba göre erişime izin verebilirsiniz. Bu, grupları belirten başka bir dosya eklenerek yapılır.

Örneğin adlandırılabilen grup dosyası .htgroups şuna benzer:

admin: johnsmith janedoe

staff: jackdoe cindysmith

Daha sonra bunu .htaccess dosyanızda belirtebilirsiniz :

AuthUserFile /usr/local/etc/.htpasswd

AuthGroupFile /usr/local/etc/.htgroup

AuthName "Admin Area"

AuthType Basic

require group admin

Alternatifler .htpasswd

Sunucunuzdaki belirli dosyalara erişimi kısıtlamak .htaccess ve kullanmak .htpasswd, yalnızca çok sayıda statik dosyanız varsa gerçekten anlamlıdır. Bu özellik, web siteleri genellikle HTML belgeleri ve ilgili kaynaklardan oluşan bir koleksiyon olduğunda geliştirilmiştir.

WordPress veya Drupal gibi bir içerik yönetim sistemi (CMS) kullanıyorsanız, içeriğe erişimi kısıtlamak veya vermek için yerleşik kullanıcı yönetimi özelliklerini kullanabilirsiniz.

Sunucu Tarafı Kodları (SSI) Etkinleştirme

Şimdi Sunucu Tarafı Kapsarlarının ne olduğunu ve bunları nasıl kullanabileceğinizi öğrenelim.

Sunucu Tarafı Neleri İçerir?

SSI veya Sunucu Tarafı Kodları, temel olarak HTML belgelerini diğer HTML belgelerine gömmek için kullanılan hafif bir komut dosyası dilidir. Bu, üstbilgiler, altbilgiler, kenar çubukları ve menüler gibi ortak öğeleri yeniden kullanmayı kolaylaştırır. Bunu bugünün şablon ve içerik yönetim sistemlerinin bir öncüsü olarak düşünebilirsiniz.

SSI ayrıca koşullu yönergelere ( ifelsevb.) Ve değişkenlere sahiptir, bu da onu kullanımı biraz zor olsa da eksiksiz bir betik dili yapar. (Tipik olarak, bir avuç dolusu eklemeden daha karmaşık herhangi bir proje, geliştiricinin PHP veya Perl gibi daha sağlam bir dil seçmesine neden olur.)

SGK’yı etkinleştirme

Bazı web barındırma sunucularında Sunucu Tarafı Kodları varsayılan olarak etkinleştirilir. Değilse, bunu .htaccess dosyanızla şu şekilde etkinleştirebilirsiniz :

AddType text/html .shtml

AddHandler server-parsed .shtml

Options Indexes FollowSymLinks Includes

Bu, .shtmluzantıya sahip tüm dosyalar için SSI’yı etkinleştirmelidir .

.html Dosyalarda SSI

.htmlDosyalarda SSI ayrıştırmayı etkinleştirmek istiyorsanız , bunu gerçekleştirmek için bir yönerge ekleyebilirsiniz:

AddHandler server-parsed .html

Bunu yapmanın yararı, SSI’yi kullandığınızı tüm dünyaya bildirmeden kullanabilmenizdir. Ayrıca, ileride uygulamaları değiştirirseniz, .html dosya uzantılarınızı koruyabilirsiniz .

Bunun dezavantajı, her .html dosyanın SSI ile ayrıştırılacak olmasıdır. .html Aslında herhangi bir SSI ayrıştırmasına ihtiyaç duymayan çok sayıda dosyanız varsa , bu, çok sayıda gereksiz sunucu ek yüküne neden olarak sayfa yükleme sürelerinizi yavaşlatabilir ve CPU kaynaklarını kullanabilir.

Endeks Sayfanızdaki SSI

Eğer varsa yok tüm ayrıştırmak isteyen .html dosyaları, ancak do sizin endeksi (ev) sayfasını SSI kullanmak istiyorum, sen de belirtmek gerekir .htaccess dosyanın.

Bunun nedeni, web sunucusu bir dizinin dizin sayfasını ararken index.html, siz aksini söylemediğiniz sürece, arar .

.html Dosyaları ayrıştırmıyorsanız , index.shtml SSI’nin çalışması için dizin sayfanızın adlandırılması gerekir ve sunucunuz varsayılan olarak bunu aramayı bilmez.

Bunu etkinleştirmek için şunları eklemeniz yeterlidir:

DirectoryIndex index.shtml index.html

Bu, web sunucusunu index.shtml dosyanın dizin için ana dizin dosyası olduğu konusunda uyarır . İkinci parametre, bulunamama index.html ihtimaline index.shtml karşı bir yedektir.

IP Kara Listesi ve IP Beyaz Listesi

.htaccess Kullanıcıları belirli bir IP adresinden engellemek için kullanabilirsiniz (kara listeye alma). Bu, sorunlara neden olan belirli IP adreslerinden bireysel kullanıcıları belirlediyseniz yararlıdır.

Ayrıca, belirli bir IP adresinden gelen ziyaretçiler dışındaki herkesi engelleyerek (beyaz listeye alma) tersini de yapabilirsiniz . Erişimi yalnızca onaylanmış kullanıcılarla kısıtlamanız gerektiğinde bu yararlıdır.

IP’ye göre kara listeye alma

Belirli IP adreslerini engellemek için, uygun IP adresleriyle aşağıdaki yönergeyi kullanmanız yeterlidir:

order allow,deny

deny from 111.22.3.4

deny from 789.56.4.

allow from all

İlk satır, allow direktiflerden önce deny direktiflerin değerlendirileceğini belirtir . Bu, bunun allow from all varsayılan durum olacağı ve daha sonra yalnızca deny yönergelerle eşleşenlerin reddedileceği anlamına gelir.

Bu tersine çevrilirse order deny,allow, değerlendirilen son şey allow from all , herkesin deny ifadeleri geçersiz kılmasına izin veren direktif olacaktır .

deny from 789.56.4.Tam bir IP adresi olmayan üçüncü satıra dikkat edin . Bu, o bloktaki tüm IP adreslerini (ile başlayanları 789.56.4) reddeder .

Bir deny from yönerge ile her satıra bir tane olmak üzere istediğiniz kadar IP adresi ekleyebilirsiniz .

IP’ye göre beyaz listeye ekleme

Kara listeye almanın tersi beyaz listeye almaktır – belirledikleriniz dışındaki herkesi kısıtlar.

Tahmin edebileceğiniz gibi, order direktifin tersine çevrilmesi gerekir, böylece herkes önce gelir denied, sonra belirli adresler olur allowed.

order deny,allow

deny from all

allow from 111.22.3.4

allow from 789.56.4.

Eylemleri Engelleme

.htaccess, kullanıcıları etki alanına veya yönlendirene göre engellemek için kullanılabilir. Ve botları ve kazıyıcıları engellemek için kullanabilirsiniz. Nasıl olduğunu öğrenelim.

Kullanıcılar Etki Alanına Göre Nasıl Engellenir

Ayrıca bir alan adına göre kullanıcıları engelleyebilir veya izin verebilirsiniz. Bu, insanları IP adresinden IP adresine geçerken bile engellemeye yardımcı olabilir.

Ancak bu, ters DNS IP adresi eşlemesini kontrol edebilen kişilere karşı işe yaramayacaktır.

order allow,deny

deny from example.com

allow from all

Bu, alt alanlar için de geçerlidir – önceki örnekte, gelen ziyaretçiler xyz.example.com de engellenecektir.

Kullanıcıları Yönlendirene Göre Engelleme

Yönlendiren, sitenize bağlantı içeren web sitesidir. Birisi sitenizdeki bir sayfanın bağlantısını takip ettiğinde, geldiği site yönlendirendir.

Bu sadece web sitenize tıklanabilir köprüler için işe yaramaz.

İnternetin herhangi bir yerindeki sayfalar, trafik açısından size herhangi bir fayda sağlamadan, bant genişliğinizi kullanarak ve muhtemelen telif hakkınızı ihlal ederek, doğrudan resimlerinize (“hotlinking”) bağlanabilir. Ayrıca CSS dosyalarınıza, JS komut dosyalarınıza veya diğer kaynaklara hızlı bağlantı da yapabilirler.

Çoğu web sitesi sahibi, sadece biraz olduğunda buna razıdır, ancak bazen bu tür şeyler kötüye kullanıma dönüşebilir.

Ek olarak, bazen gerçek metin içi tıklanabilir köprüler, düşman web sitelerinden geldiklerinde olduğu gibi sorunludur.

Bu nedenlerden herhangi biri nedeniyle, belirli yönlendirenlerden gelen istekleri engellemek isteyebilirsiniz.

Bunu yapmak için mod_rewrite modülün etkinleştirilmiş olması gerekir . Bu, çoğu web barındırıcısı için varsayılan olarak etkindir, ancak değilse (veya emin değilseniz) genellikle barındırma şirketinize sorabilirsiniz. (Etkinleştiremezlerse veya etkinleştirmezlerse, yeni bir ana bilgisayar hakkında düşünmek isteyebilirsiniz.)

.htaccess Yönlendiren tabanlı engelleme başarmak direktifler itimat mod_rewrite motoru.

Yönlendirene göre engellenecek kod şuna benzer:

RewriteEngine açık

RewriteCond% ^ http: //.*example.com [NC, OR]

RewriteCond% ^ http: //.*anotherexample.com [NC, OR]

RewriteCond% ^ http: //.*onemoreexample.com [NC]

Yeniden Yazma Kuralı. * - [F]

Bu biraz zor, bu yüzden üzerinden geçelim.

İlk satır, RewriteEngine on yeniden yazmayla ilgili bir dizi yönergenin gelmekte olduğu konusunda ayrıştırıcıyı uyarır.

Sonraki üç satırın her biri, bir yönlendiren alanı engeller. Kendi kullanımınız için değiştirmeniz gereken kısım alan adı ( example) ve uzantıdır ( .com).

Önündeki geriye doğru eğik çizgi .com bir çıkış karakteridir. Etki alanı adında kullanılan desen eşleşmesi normal bir ifadedir ve nokta, RegEx’te bir anlama gelir, bu nedenle ters eğik çizgi kullanılarak “kaçılması” gerekir.

NC Maç gereken parantez belirtiyorsa içinde değil harf duyarlı olun. OR Bir hazır “veya” olduğunu ve önümüzdeki diğer kuralları olduğunu demektir. (Yani – URL bu ise veya bu veya bu ise, bu yeniden yazma kuralını izleyin.)

Son satır, gerçek yeniden yazma kuralıdır. [F], “Yasak” anlamına gelir. Listede olanlarla eşleşen bir yönlendiren içeren tüm istekler başarısız olur ve bir 403 Forbidden hata verir.

Botları ve Web Kazıyıcıları Engelleme

Bir web sitesini yönetmenin en can sıkıcı yönlerinden biri, bant genişliğinizin insan olmayan ziyaretçiler (botlar, tarayıcılar, web sıyırıcılar) tarafından tüketildiğini keşfetmektir.

Bunlar, genellikle bazı düşük dereceli SEO işlemlerinin bir parçası olarak yeniden yayınlamak amacıyla sitenizden bilgi çekmek için tasarlanmış programlardır.

Tabii ki, yasal botlar – büyük arama motorlarından gelenler gibi. Ancak geri kalanı, kaynaklarınızı tüketen ve size hiçbir şekilde değer katmayan haşereler gibidir.

Tanımlanmış birkaç yüz bot var. Hiçbir zaman hepsini engelleyemeyeceksiniz, ancak olabildiğince çok kişiyi engelleyerek aktiviteyi donuk bir kükreme haline getirebilirsiniz.

AskApache tarafından derlenen 400’den fazla bilinen botu engelleyen kullanışlı bir dizi yeniden yazma kuralı vardır .

Bir Dizin için Varsayılan Dosya Belirtme

Dosya adı belirtmeyen bir URL için bir web sunucusuna istekte bulunulduğunda, çoğu web sunucusunda yerleşik olan varsayım, URL’nin bir dizine başvurduğudur.

Bu nedenle, talep ederseniz http://example.com, Apache (ve diğer web sunucularının çoğu ), varsayılan dosya için etki alanının kök dizinine (genellikle /public_html veya benzer, ancak belki de /example-com) bakacaktır .

Varsayılan dosya, varsayılan olarak denir index.html. Bu, bir web sitesinin yalnızca bir belge koleksiyonu olduğu ve “ana” sayfanın genellikle bu belgelerin bir indeksi olduğu İnternet’in başlangıcına kadar uzanır.

Ancak index.html varsayılan sayfa olmak istemeyebilirsiniz . Örneğin, sizin gibi, farklı bir dosya tipi gerekebilir index.shtmlindex.xml ya da index.php.

Veya ana sayfanızı bir “dizin” olarak düşünmeyebilirsiniz ve ona home.html veya gibi farklı bir ad vermek isteyebilirsiniz main.html.

Varsayılan Dizin Sayfasını Ayarlama

.htaccess bir dizin için varsayılan sayfayı kolayca ayarlamanıza olanak verir:

DirectoryIndex [filename here]

Varsayılanınızın olmasını istiyorsanız, home.html bu kadar kolay:

DirectoryIndex home.html

Birden Fazla Varsayılan Sayfayı Ayarlama

Ayrıca birden fazla belirtebilirsiniz DirectoryIndex:

DirectoryIndex index.php index.shtml index.html

Bunun çalışma şekli, web sunucusunun ilkini aramasıdır. Bulamazsa, ikincisini arar ve bu böyle devam eder.

Bunu neden yapmak istersiniz? Varsayılan sayfanız olarak hangi dosyayı kullanmak istediğinizi kesinlikle biliyorsunuz, değil mi?

Bunun .htaccess kendi dizinini ve daha yerel bir dosya tarafından geçersiz kılınana kadar her alt dizini etkilediğini unutmayın . Bu .htaccess, kök dizininizdeki bir dosyanın birçok alt dizin için talimatlar sağlayabileceği ve her birinin kendi varsayılan sayfa adına sahip olabileceği anlamına gelir .

Bu kuralları .htaccess kökteki tek bir dosyaya yerleştirebilmek, dosyadaki diğer tüm yönergeleri her dizin düzeyinde çoğaltmak zorunda olmadığınız anlamına gelir.

URL Yönlendirmeleri ve URL Yeniden Yazma

.htaccess Dosyaların en yaygın kullanımlarından biri URL yeniden yönlendirmeleridir.

Bir belge veya kaynağın URL’si değiştiğinde URL yönlendirmeleri kullanılmalıdır. Bu, özellikle web sitenizi yeniden düzenlediyseniz veya alan adlarını değiştirdiyseniz yararlıdır.

301 ve 302 Yönlendirmeleri

Tarayıcı açısından, iki tür yeniden yönlendirme vardır, 301 ve 302. (Bu numaralar, web sunucusu tarafından oluşturulan hata koduna işaret eder.)

301, “Kalıcı Olarak Taşındı” anlamına gelirken, 302 “Geçici Olarak Taşındı” anlamına gelir. Çoğu durumda, 301’i kullanmak istersiniz. Bu, orijinal URL’nin sahip olduğu herhangi bir SEO değerini koruyarak yeni sayfaya aktarır.

Ayrıca çoğu tarayıcının yer imlerini güncellemesine neden olur. Çoğu tarayıcı aynı zamanda eskiden yeniye eşlemeyi de önbelleğe alır, böylece bir bağlantı veya kullanıcı orijinale erişmeye çalıştığında yeni URL’yi ister. URL Eğer gelmiştir kalıcı değişti, bunların hepsi arzu sonuçlardır.

Bir URL’yi geçici olarak değiştirmek için genellikle çok az neden olduğundan, 302 yönlendirmelerini kullanmak için çok az neden vardır. Bir URL’yi değiştirmek istenmeyen bir durumdur, ancak bazen gereklidir. Daha sonra değiştirmeyi planlayarak geçici olarak değiştirmek kötü bir fikirdir ve neredeyse her zaman önlenebilir.

Bu bölümdeki tüm örnekler 301 yönlendirmesini kullanacaktır.

Yönlendirme ve Yeniden Yazma

Bir URL’yi .htaccess yönergelerle “değiştirmenin” iki farklı yolu vardır – Redirect komut ve mod_rewrite motor.

Redirect Komut aslında başka hangi URL aramaya bunu söylüyorum tarayıcıya bir yönlendirme mesajı gönderir.

Tipik olarak, mod_rewrite araç bir URL’yi (bir istekte sağlanan) dosya sistemi veya CMS’nin anlayacağı bir şeye “çevirir” ve ardından isteği, çevrilen URL istenen URL gibi işler.

Bu şekilde kullanıldığında, web tarayıcısı herhangi bir şey olduğunu fark etmez – sadece istediği içeriği alır.

mod_rewrite Araç aynı zamanda aynı şekilde çalışır 301 yönlendirmelerini üretmek için kullanılabilir Redirect komutu, ancak kurallar için daha fazla seçenek – mod_rewrite Karmaşık desen eşleştirme ve yeniden yazma talimatı sahip olabilir Redirect yararlanmak mümkün değil.

Temel Sayfa Yönlendirmesi

Bir sayfayı başka bir URL’ye yeniden yönlendirmek için kod:

Redirect 301 /relative-url.html http://example.com/full-url.html

Bu tek satırlı komut, her biri tek bir boşlukla ayrılmış dört bölümden oluşur:

  • Redirect komuta
  • Yönlendirme türü ( 301 - Moved Permanently)
  • Göreceli orijinal sayfanın URL’si
  • Tam ve eksiksiz yeni sayfanın URL’si.

Göreli URL, .htaccess genellikle web kökü veya etki alanının kökü olan dosyayı içeren dizine göredir .

Yani, http://example.com/blog.phptaşınmış http://blog.example.com olsaydı, kod şöyle olurdu:

Redirect 301 /blog.php http://blog.example.com

Web Sitenizin Geniş Bir Bölümünü Yeniden Yönlendirme

Dizin yapınızı hareket ettirdiyseniz, ancak sayfa adlarınızı aynı tuttuysanız, belirli bir dizine yönelik tüm istekleri yeni dizine yönlendirmek isteyebilirsiniz.

Redirect 301 /old-directory http://example.com/new-directory

Tüm Siteyi Yeniden Yönlendirme

Ya sitenizin tamamı yeni bir URL’ye taşındıysa? Kolay.

Redirect 301 / http://newurl.com

Www, www olmayana yönlendiriliyor

Web siteleri giderek www alt alandan uzaklaşıyor .

Hiçbir zaman gerçekten gerekli olmadı, ancak bir web sitesini işleten çoğu kişinin kendi belgelerini saklamak için bir sunucu www kullandığı ve paylaşmak istedikleri içerik için “dünya çapında web” dizininin kullanıldığı günlerden kalma bir gecikmeydi diğerleriyle.

Bugünlerde bazı insanlar kullanıyor, bazıları kullanmıyor. Ne yazık ki, bazı kullanıcılar hala www.alışkanlık dışında her URL’nin önüne otomatik olarak yazmaktadır. Eğer kullanmıyorsanız www, emin bu istekleri doğru yerde karaya emin olmak istiyorum.

Bunu yapmak için mod_rewrite, muhtemelen web sunucunuzda zaten kurulu olan modülü kullanmanız gerekecektir .

Seçenekler + FollowSymlinks

RewriteEngine açık

RewriteCond% ^ www.example.com [NC]

RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Dikkatli ol!

Diğer birçok kılavuz .htaccess ve mod_rewrite kılavuz, bunu başarmak için aşağıdaki kodun bazı varyasyonlarını sunar:

Seçenekler + FollowSymlinks

RewriteEngine açık

RewriteCond%! ^ Example.com [NC]

RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Bununla ilgili sorunu görüyor musun?

Tüm alt alanları birincil alana yönlendirir . Yani sadece www.example.com, aynı zamanda blog.example.com ve admin.example.com ve başka bir şey. Muhtemelen istediğiniz davranış bu değil.

Www’ye yönlendiriliyor

Ama ne olursa edilir kullanarak www alt alan?

İnsanların gitmeye çalıştıkları yere ulaştığından emin olmak için muhtemelen bir yönlendirme ayarlamalısınız. Özellikle şimdi, daha az sayıda kişinin bunu otomatik www olarak URL’lerin başına ekleyeceği düşünülüyor.

Sadece yukarıdaki kodu ters çevirin.

RewriteEngine Açık

RewriteCond% ^ example.com [NC]

Yeniden Yazma Kuralı ^ (. *) Http://www.website.com/$1 [R = 301, NC]

404 Hatalarını Ana Sayfaya Yönlendirmeli miyim?

.htaccess Yönlendirmelerle ilgili çeşitli kılavuzlar, 404 hatalarının ana sayfaya nasıl yönlendirileceğine ilişkin talimatlar içerir.

Bu, bir şeyi yapabildiğiniz için nasıl bir şey yapmanız gerektiği anlamına gelmediğinin güzel bir örneğidir .

404 hatalarını sitenin ana sayfasına yeniden yönlendirmek korkunç bir fikirdir. Doğru bir 404 hata sayfası yerine neden bir sitenin ön sayfasını gördüklerini anlayamayan ziyaretçilerin kafasını karıştırır.

Tüm web sitelerinin, kullanıcıya içeriğin bulunamadığını açık bir şekilde açıklayan ve ideal olarak, kullanıcının aradığını bulmasına yardımcı olacak bazı arama özellikleri sunan özel bir 404 sayfası olmalıdır.

Neden .htaccess Alternatifler Yerine Kullanılmalı ?

PHP dosyalarında veya başka herhangi bir tür sunucu tarafı komut dosyasıyla yeniden yönlendirme kurabilirsiniz. Bunları İçerik Yönetim Sisteminizde de kurabilirsiniz (temelde aynı şeydir).

Ancak kullanmak .htaccess, genellikle en hızlı yönlendirme türüdür. PHP tabanlı yeniden yönlendirmelerde veya diğer sunucu tarafı kodlama dillerinde, tüm isteğin tamamlanması ve tarayıcıya bir yönlendirme mesajı gönderilmeden önce komut dosyasının gerçekten yorumlanması gerekir.

.htaccess Yönlendirmeler ile sunucu, isteğe doğrudan yönlendirme mesajıyla yanıt verir. Bu çok daha hızlı.

Yine de, bazı içerik yönetim sistemlerinin yeniden yönlendirmeleri .htaccess programatik olarak güncelleyerek yönettiğini unutmayın . Örneğin WordPress, bu şekilde çalışan yönlendirme eklentilerine sahiptir. (Ve WP’nin güzel URL sistemi de bunu yapıyor.)

Bu size .htaccess doğrudan kullanım performansını verirken, aynı zamanda uygulamanızın içinden yönetim kolaylığı sağlar.

.Htaccess Dosyanızı Gizleme: Güvenlikle İlgili Hususlar

Birisinin .htaccess dosyanızı web’den görüntüleyebilmesi için hiçbir neden yoktur .

Üstelik, kesinlikle gereken bazı büyük nedeni vardır değil insanların görmek istiyorum .htaccess dosyayı.

En büyük sorun, bir .htpasswd dosya kullanıyorsanız , konumunun .htaccess dosyada yazılmasıdır. Nerede bulacağını bilmek, bulmayı kolaylaştırır.

Dahası, genel bir kural olarak, kamuoyuna uygulamanızla ilgili ayrıntılar vermek istemezsiniz.

Kuralları, dizin ayarlarını, güvenliği yeniden yazın – kullandığınız her şey .htaccess– web sunucunuzda tüm bu perde arkasını gizlemek iyi bir güvenlik uygulamasıdır. Bir bilgisayar korsanı sisteminiz hakkında ne kadar çok şey öğrenirse, onu tehlikeye atmak o kadar kolay olur.

Öyle çok kolay sizin gizlemek için .htaccess genel görünümden dosyayı. Aşağıdaki kodu eklemeniz yeterlidir:

order allow,deny

deny from all

MIME türlerini etkinleştirme

MIME türleri dosya türleridir. E-posta ile orijinal ilişkilendirmelerinden dolayı MIME türleri olarak adlandırılırlar (MIME, “Çok Amaçlı İnternet Posta Uzantıları” anlamına gelir). Onlar değil MIME dosya türünü belirtmek için özel bir biçim ima çünkü sadece “dosya türleri” çağrısında bulundu.

Daha önce bir HTML belgesi yazdıysanız, bilmeseniz bile büyük olasılıkla bir MIME türü belirlemişsinizdir:

Aradığınız Bilgiyi Bulamıyor musunuz?

Bilgi bankasını detaylı olarak incelediniz, fakat ihtiyacınız olan bilgiyi bulamıyorsanız,

Bir Destek Talebi Oluşturun.
Faydalı Buldunuz mu?
(54 defa görüntülendi. / 2 kişi faydalı buldu.)

Top