Htaccess dosyası - yeni başlayanlar için bir .htaccess dosyası oluşturma talimatı

Yazdır · Время на чтение: 13min · tarafından · Yayınlanan · Güncellenmiş

çoğaltmakmakaleyi dinle

.htaccess dosyası nasıl oluşturulur?

htaccess dosyası - yeni başlayanlar için bir .htaccess dosyası nasıl oluşturulur? .htaccess dosyası, kural olarak, yalnızca Unix - sistemler altındaki uzantıya sahiptir. Ve Apache sunucusunu çalıştıran sitelere fayda sağlar.

Htaccess, sunucudaki belirli bir site için bir dizi kurala sahiptir. Dosya, Apache web sunucusu için birçok yapılandırma seçeneğini kontrol eder. Apache, platformlar arası işletim sistemleri için yaygın olarak kullanılan bir sunucu yazılımıdır.

Kullandığı sözdizimi ilk başta biraz kafa karıştırıcı olsa da, bu .htaccess dosyası pek çok yararlı şey yapabilir. Özelliklerinden bazıları, yeniden yönlendirme, parola koruması, belirli koşullara dayalı erişim kısıtlaması ve daha fazlasını içerir. Bu gönderide, bir .htaccess dosyasının nasıl oluşturulup yapılandırılacağına ve bunun için en yaygın kullanımlardan bazılarının nasıl uygulanacağına bakacağız.

.htaccess dosyası oluşturma talimatları

.htaccess dosya ayarları.

htaccess, bir nokta ile başladığı için genellikle "nokta dosyası" olarak bilinir. Nokta dosyaları neredeyse her zaman bir yapılandırma dosyasıdır. Bu tür dosyalar bir işletim sistemi veya bir yazılım parçası için olabilir. Varsayılan olarak, işletim sistemi nokta dosyalarını arama pencerelerinde veya herhangi bir sistem dosya yöneticisinde gizler. Genellikle, işletim sisteminizin ayarlarında "Gizli dosyaları göster" seçeneğini seçmeniz gerekir. Veya komut satırındaki tüm dosyaları listelemek için komutu kullanabilirsiniz. ls-a

Sunucuda birkaç benzer dosya olabilir ve her dosya her zaman yinelemeli olarak çalışır. Bu, her dosyanın bulunduğu dizini, ayrıca tüm dosyaları ve alt dizinleri etkileyeceği anlamına gelir.

  1. Bu dosyayı oluşturmak için mevcut herhangi bir metin düzenleyiciyi (örneğin, not defteri) kullanmak yeterlidir.
  2. Ad (.htaccess) - tırnak işaretleri ve diğer şeyler olmadan.
  3. Dosyayı kaydediyoruz.
  4. Ardından, mutlaka sitenin kök dizininde bulunan bir FTP istemcisi kullanarak sunucunuza (barındırma) aktarıyoruz. ASCII modunda iletmelisiniz. Varsayılan olarak, çoğu FTP istemcisi, nokta dosyalarının aktarımı için verimsiz olan bir mod kullanarak veri aktarır. FTP istemciniz aktarım modunu ayarlayabilmelidir. İKİLİ
  5. Ardından istediğiniz gibi düzenleyebilirsiniz, ancak dosyanın sunucudaki (barındırma) sürümünü güncellediğinizden emin olun. Herhangi bir nedenle kuralların yürürlüğe girmediği görülüyorsa bunun nedeni yanlış dosya izinleri olabilir. .htaccess dosya izinleri 755 olarak ayarlanmalıdır. FTP istemcinizde bir "Dosya izinleri" seçeneği olmalıdır. Ek olarak, komutu .chmod 755 .htaccess terminalinde çalıştırabilirsiniz (dosyadan önce tam adresi belirtmek daha iyidir).

Basit bir sayfa yönlendirme örneği

.htaccess'teki ana popüler kurallardan biri sayfa yönlendirmedir. Site yöneticinizdeki herhangi bir ilgili yoldan yönlendirme yapabilirsiniz. Ayrıca sayfayı sitenizdeki mutlak bir yola veya İnternet'teki herhangi bir yere yönlendirebilirsiniz. Dosyanızda kullanılacak temel sözdizimi şöyledir:

Yönlendirme /directory_to_redirect_from/ https://mysite.com/new_directory/index.html

Kaynak dizin olarak her zaman göreli bir yol kullanmalısınız. Mutlak yol, yönlendirilecek dizin olmalıdır.

.htaccess'te bir hata belgesi oluşturma örneği

Özel hata sayfaları oluşturmak, örneğin web sitenizdeki bir URL çalışmıyorsa, web sitenizin ziyaretçilerine kolay bir hata mesajı göstermenize izin verdiği için çok kullanışlıdır. Bu, dostça olmayan "404 Dosya Bulunamadı" hatasını önler ve olası çözümleri açıklayan ve ziyaretçiyi hüsrana uğratmak ve kaybetmek yerine web sitenizin içeriğine geri yönlendirmek için dostça bir hata görüntülemenize olanak tanır.

Özel hata belgeleri ayarlamak için, aşağıdaki metni içeren temel talimatları ve yönergeleri izleyerek bir .htaccess dosyası oluşturun:

ErrorDocument 404 /error_pages/404.html

Yukarıdaki satır, Apache web sunucusuna, bir 404 (dosya bulunamadı) hatası oluştuğunda /error_pages/404.html'de (etki alanı adınız/web sitesi adresinizin altında) bulunan belgeyi oluşturmasını söyler.

Bu örnekte, bir hata belgesi oluşturduğunuzu ve bunu "404.html" olarak adlandırdığınızı ve etki alanı adınız altında "error_pages" adlı bir dizine yerleştirdiğinizi varsaydık. Örneğin, http://www.alaniniz.com/error_pages/404.html.

404.html belgesi, web sitenizdeki diğerleri gibi normal bir HTML belgesidir ve istediğiniz herhangi bir içeriği görüntüleyebilir, ancak bir "Dosya bulunamadı" mesajı eklemenizi öneririz.

401 Yetkisiz, 403 Yasak ve 500 Dahili Sunucu hata mesajları gibi ek hata belgeleri ayarlamak için, aşağıdaki metni içeren temel talimatları ve yönergeleri izleyerek bir htaccess dosyası (nokta) oluşturun:

Hata Belgesi 401 /error_pages/401.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.html

.htaccess'te örnek parola koruması

Apache web sunucusu tarafından sunulan parola koruması ve kimlik doğrulama sistemleri muhtemelen .htaccess dosyalarının en önemli kullanım alanlarıdır. Erişim için kullanıcı adı ve parola gerektiren bir web sitesinin bir dizinini (veya birkaçını) çok kolay bir şekilde parolayla koruyabiliriz. Bu güvenli dizinler için oturum açma prosedürü, açılır bir oturum açma arabirimi kullanılarak web tarayıcısı tarafından otomatik olarak gerçekleştirilir (muhtemelen daha önce görmüşsünüzdür). Parolalar ayrıca oturum açma kimlik bilgilerinizi güvende tutan mevcut en iyi şifreleme yöntemlerinden biri kullanılarak şifrelenir.

Öncelikle hangi dizini parola ile korumak istediğinize karar verin (dizindeki tüm dosyaların ve alt dizinlerin parola korumalı olacağını unutmayın), ardından aşağıdaki metni içeren temel yönergeleri ve yönergeleri izleyerek bir .htaccess dosyası oluşturun:

AuthName "Üye Alan Adı"
AuthUserFile /yol/to/şifre/dosya/.htpasswd
AuthType Temel
geçerli kullanıcı gerektir

İlk satır, Apache web sunucusuna güvenli dizinin, oturum açma istemi açıldığında görüntülenecek olan "Kullanıcı Bölgesi Adı" olarak adlandırıldığını söyler. İkinci satır, parola dosyasının konumunu belirtir. Üçüncü satır, kimlik doğrulama türünü belirtir, bu örnekte HTTP temel kimlik doğrulaması kullandığımız için "Temel" kullanıyoruz ve son olarak dördüncü satır, geçerli oturum açma kimlik bilgilerine ihtiyacımız olduğunu belirtir, bu satır belirli bir kullanıcı adı belirtmek için de kullanılabilir "require username username username" gibi, "username" kullanıcı adını gerektirecektir.

Parola korumalı bir genel dizin oluşturmak yerine yönetici alanını parolayla koruyor olsaydınız bunu kullanırdınız.

Parola dosyasının konumu web sunucunuzun herhangi bir yerinde olabilir, "/location/of/password/file/" yerine parola dosyasını ve ".htpasswd" dosyasını içeren dizinin tam/mutlak yolu ile değiştirilmelidir. var olmalı, ama ona ne istersen diyebilirsin.

".htpasswd" dosya adını kullanıyoruz çünkü sunucu dosya adını tanıyacak ve onu ziyaretçilerden gizleyecektir. Bazı sunucuların parola dosyasının .htaccess dosyasıyla aynı dizinde olmasını gerektirdiğini unutmayın. Parola dosyasının konumu için tam/mutlak sunucu yolunun kullanılması da önemlidir, göreli bir yol veya URL'nin herhangi bir varyasyonu çalışmayacaktır.

Parola dosyası aşağıdaki metne benzer bir şey içerecektir:

kullanıcı adı:şifrelişifre
fred_smith:oCF9Pam/MXJg2

Artık sadece bir parola bulamazsınız, Unix/Linux sunucularında parolaların sunucu tarafından şifrelenmesi gerekir, Windows sunucularında ise Windows herhangi bir şifreleme yöntemi sunmadığı için yalnızca düz metin parolası kullanırsınız. Parola dosyasında, kullanıcı adı ve parolayı iki nokta üst üste ile ayırarak, her satıra bir hesap olacak şekilde istediğiniz sayıda kullanıcı girişine sahip olabilirsiniz. Sunucuya erişiminiz yoksa, servis sağlayıcınızdan bu özelliği etkinleştirmesini isteyin. Lütfen, kontrol panelinde bu özellik yerleşiktir.

Ziyaretçiler IP adresine göre nasıl engellenir?

Apache web sunucusu tarafından sunulan ziyaretçi engelleme araçları, belirli ziyaretçilerin erişimini reddetmemize veya belirli ziyaretçilere erişim izni vermemize olanak tanır. Bu, istenmeyen ziyaretçileri engellemek veya web sitesi sahibinin web sitesinin yönetim alanı gibi yalnızca belirli bölümlerine erişmesine izin vermek için son derece kullanışlıdır.

Ziyaretçi kısıtlamalarını ve engellemeyi ayarlamak için, aşağıdaki metni içeren temel talimatları ve yönergeleri izleyerek bir .htaccess dosyası oluşturun:

order allow,deny
255.0.0.0'dan reddet
123.45.6'dan reddet.
allow from all

Yukarıdaki satırlar, Apache web sunucusuna "255.0.0.0" ve "123.45.6" IP adreslerinden gelen ziyaretçileri engellemesini söyler, ikinci IP adresinde dördüncü sayı kümesinin eksik olduğuna dikkat edin; ilki "123.45.6.10" ve "123.45.6.255" gibi üç sayı grubu bloke edilecektir.

Kendiniz dışındaki tüm ziyaretçileri engellemeyi ayarlamak için, aşağıdaki metni içeren temel talimatları ve yönergeleri izleyerek bir .htaccess dosyası oluşturun:

order allow,deny
255.0.0.0'dan izin ver
deny from all

Yukarıdaki satırlar, Apache web sunucusuna kendi IP adresinizle değiştirmeniz gereken "255.0.0.0" IP adresine sahip olanlar dışındaki tüm ziyaretçileri engellemesini söyler.

"Sipariş ver, reddet"ten sonra istediğiniz sayıda "reddet" ve "izin ver" girişi ekleyebilirsiniz. Alt satırda "herkesten izin ver" ile "herkesten reddet" arasındaki değişikliğe dikkat edin, bu önemlidir ve gereksinimlerinize göre değiştirilmelidir. Ziyaretçilerinizin erişimine izin vermek istiyorsanız, "herkesten izin ver" seçeneğini kullanmalı ve yukarıya "reddet" satırlarını yerleştirmelisiniz.

Engellenen ziyaretçilere " hata mesajı gösterilecek403 yasak".

.htaccess dosyası oluşturma örneği.

.htaccess dosyamda bulunan örnek kurallar

# AMPFORWPLBROWSERCSTART Tarayıcı Önbelleğe Alma - tarayıcı tarafında amp sağlama.

IfModule mod_expires.c parantez "<>" içine alınmalıdır
Etkinliğin Süresi Doluyor
AddType uygulaması/vnd.ms-fontobject .eot
AddType uygulaması/x-font-ttf .ttf
AddType uygulaması/x-font-opentype .otf
AddType uygulaması/x-font-woff .woff
AddType resim/svg+xml .svg
ExpiresByType application/vnd.ms-fontobject "erişim 1 yıl"
ExpiresByType application/x-font-ttf “erişim 1 yıl”
ExpiresByType uygulaması/x-font-opentype "erişim 1 yıl"
ExpiresByType uygulaması/x-font-woff “erişim 1 yıl”
ExpiresByType image/svg+xml "erişim 1 yıl"
ExpiresByType image/webp "erişim 1 yıl"
ExpiresByType image/gif “erişim 1 yıl”
ExpiresByType image/jpg "erişim 1 yıl"
ExpiresByType image/jpeg "erişim 1 yıl"
ExpiresByType image/png “erişim 1 yıl”
ExpiresByType image/x-icon “erişim 1 yıl”
ExpiresByType text/css "erişim 3 ay"
ExpiresByType text/javascript “erişim 3 ay”
ExpiresByType uygulaması/javascript “erişim 3 ay”
ExpiresByType uygulaması/x-javascript "erişim 3 ay"
ExpiresByType application/xhtml-xml "erişim 3 ay"
ExpiresByType uygulama/pdf "erişim 3 ay"
ExpiresByType uygulaması/x-shockwave-flash "erişim 3 ay"
/IfModule köşeli parantez "<>" içine alınmalıdır

# GZIP SIKIŞTIRMAYA BAŞLA - gzip sıkıştırma

IfModule mod_gzip. “<>” parantez içine aldığınızdan emin olun
mod_gzip_on Evet
mod_gzip_dechunk Evet
mod_gzip_item_include dosyası \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include işleyicisi ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^resim/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
/IfModule köşeli parantez "<>" içine alınmalıdır

# Tarayıcı hatalarını kaldırın (yalnızca gerçekten eski tarayıcılar için gereklidir)

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] gzipsiz
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Başlık eki Vary User-Agent
IfModule mod_deflate.c parantez "<>" içine alınmalıdır

# HTML, CSS, JavaScript, Metin, XML ve yazı tiplerini sıkıştırın

AddOutputFilterByType DEFLATE uygulaması/javascript
AddOutputFilterByType DEFLATE uygulama/rss+xml
AddOutputFilterByType DEFLATE uygulaması/vnd.ms-fontobject
AddOutputFilterByType DEFLATE uygulaması/x-yazı tipi
AddOutputFilterByType DEFLATE uygulaması/x-font-opentype
AddOutputFilterByType DEFLATE uygulama/x-font-otf
AddOutputFilterByType DEFLATE uygulama/x-font-truetype
AddOutputFilterByType DEFLATE uygulaması/x-font-ttf
AddOutputFilterByType DEFLATE uygulaması/x-javascript
AddOutputFilterByType DEFLATE uygulama/xhtml+xml
AddOutputFilterByType DEFLATE uygulama/xml
AddOutputFilterByType DEFLATE yazı tipi/opentype
AddOutputFilterByType DEFLATE yazı tipi/otf
AddOutputFilterByType DEFLATE yazı tipi/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE metin/css
AddOutputFilterByType DEFLATE metin/html
AddOutputFilterByType DEFLATE metin/javascript
AddOutputFilterByType DEFLATE metin/düz
AddOutputFilterByType DEFLATE metin/xml
/IfModule köşeli parantez "<>" içine alınmalıdır

# HTTP Vary üstbilgilerinin MSIE ailesi tarayıcılarına döndürülmesini önleyin


BrowserMatch “MSIE” varyasyonu zorlama
BrowserMatch "Mozilla/4.[0-9]{2}" zorunlu değişken yok
/IfModule köşeli parantez "<>" içine alınmalıdır

# Sunucu imzasını gizle

Sunucu İmzası Kapalı

# Sol botları devre dışı bırak

SetEnvIfNoCase User-Agent “^Missigua Locator” bad_bot
#SetEnvIfNoCase Kullanıcı Aracısı "^PEAR HTTP_Request sınıfı" bad_bot
SetEnvIfNoCase User-Agent “^Java/1.4.1” bad_bot
SetEnvIfNoCase User-Agent “^Java/1.5.0” bad_bot
SetEnvIfNoCase User-Agent "^psycheclone" bad_bot
SetEnvIfNoCase User-Agent “^WEP Search 00” bad_bot
SetEnvIfNoCase User-Agent “^FlashGet” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^GetRight” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^GetWeb!” bad_bot
SetEnvIfNoCase User-Agent “^Go!Zilla” bad_bot
SetEnvIfNoCase User-Agent “^httplib” bad_bot
SetEnvIfNoCase User-Agent “^Indy Library” bad_bot
SetEnvIfNoCase User-Agent "^InfoNaviRobot" bad_bot
SetEnvIfNoCase User-Agent “^InterGET” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^Internet Ninja” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^LexiBot” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^libWeb/clsHTTP” bad_bot
SetEnvIfNoCase User-Agent “^libwww” bad_bot
SetEnvIfNoCase User-Agent “^libwww-perl” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^LinkextractorPro” bad_bot
SetEnvIfNoCase User-Agent “^Mozilla.*NEWT” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı "^ Ahtapot" bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^ProWebWalker” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^SuperBot” bad_bot
SetEnvIfNoCase User-Agent “^WebAuto” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^Wells Search II” bad_bot
SetEnvIfNoCase User-Agent “^Wget” bad_bot
SetEnvIfNoCase Kullanıcı Aracısı “^wget” bad_bot

Dosyamda bulunan minimum kuralları verdim.

.htaccess Dosya Özelleştirme Özellikleri ve Yaygın Hatalar

Doğru, bu dosya çoğunlukla banal sunucu hatasına neden olur 500 Dahili Sunucu Hatası. Dosyayı çok dikkatli bir şekilde düzenlemeli ve aşağıdaki kurallara uymalısınız:

  • Düzenlemeden önce her zaman .htaccess dosyasının çalışan bir kopyasını kaydedin.
  • Önce dosyayı incelemeden bir üretim sitesine asla yeni kurallar getirmeyin.
  • Kodlama genellikle UTF-8'dir.
  • Her kural yeni bir satıra yazılmalıdır.
  • Apache sunucusu tarafından işlenmeyen yönergeler hariç tutulur - hemen bir sunucu hatasına neden olurlar.
  • Bir satıra birkaç talimat yazamazsınız - 500 hatası alırsınız.
  • Dikkatli olun - fazladan bir boşluk veya karakter hataya neden olabilir.

.htaccess dosyasının site üzerindeki etkisi nedir?

Kural olarak, bu dosya sayesinde mükemmel bir şekilde yapabilirsiniz siteyi arama motorları için optimize etmek. Yapabilecekleri şunlardır:

  1. Sitede 301 yönlendirmesi ayarlamak (en yaygın kural). Gerekli görevler için kullanılabilir.
  2. Sunucu tarafında site karma ayarları.
  3. Gzip sıkıştırmasını etkinleştirme (GNU Zip'in kısaltması) - sunucu tarafında dosya sıkıştırma.
  4. Site korumasını sağlayın: ip adreslerini engelleme, yasaklamalar vb.
  5. Site için gerekli ayrılmış bellek miktarını belirtin.

Bu, bu dosya için kullanılabilen minimum işlevselliktir. Önemli olan tüm bu önerileri doğru bir şekilde takip etmektir. Sonraki yazılarda anlatmaya çalışacağım bu dosya için bazı kurallarve ne olduğunu da bileceğiz robots.txt dosyası ve site haritası nasıl eklenir arama motorlarına.

Nicola Top'u okuduğunuz için teşekkür ederiz.

Gönderi ne kadar yararlı?

Derecelendirmek için ifadeye tıklayın!

Ortalama puanı 5 / 5. Derecelendirme sayısı: 29

Henüz derecelendirme yok. Önce derecelendirin.

Şunlar da hoşunuza gidebilir...

1 Yanıt

  1. Илья dedi ki:

    Bilgi için teşekkürler. En azından canlı örneklere bakabilirsiniz. Gradyan animasyonu sadece süper))) Mükemmel uygulama - büyük olasılıkla uzun süre acı çekti.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

on + 17 =