From 6beeb1b708550be0d4a53b272283e17e5e35fe17 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:01:30 +0200 Subject: Adding upstream version 2.4.57. Signed-off-by: Daniel Baumann --- docs/manual/urlmapping.html.tr.utf8 | 365 ++++++++++++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 docs/manual/urlmapping.html.tr.utf8 (limited to 'docs/manual/urlmapping.html.tr.utf8') diff --git a/docs/manual/urlmapping.html.tr.utf8 b/docs/manual/urlmapping.html.tr.utf8 new file mode 100644 index 0000000..c0823a8 --- /dev/null +++ b/docs/manual/urlmapping.html.tr.utf8 @@ -0,0 +1,365 @@ + + + + + +URL’lerin Dosya Sistemi ile Eşleştirilmesi - Apache HTTP Sunucusu Sürüm 2.4 + + + + + + + +
<-
+

URL’lerin Dosya Sistemi ile Eşleştirilmesi

+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
+ +

Bu belgede, bir istekte belirtilen URL’nin sunulacak dosyanın dosya + sistemindeki yerini bulmak için Apache HTTP Sunucusu tarafından nasıl + kullanıldığı açıklanmaktadır.

+
+ +
top
+
top
+
+

DocumentRoot

+ +

Yapılan bir isteğe hangi dosyanın sunulacağına karar verirken + httpd’nin öntanımlı davranışı istek için URL yolunu (URL’den konak ismi + ve port ayrıldıktan sonra kalan kısım) alıp bunu yapılandırma dosyasında + DocumentRoot yönergesi ile + belirtilen dizinin sonuna eklemektir. Bu nedenle, DocumentRoot altındaki dizinler ve dosyalar + sitenin dışardan görünen temel belge ağacını oluştururlar.

+ +

Örneğin, DocumentRoot yönergesine + /var/http/html atanmış olsun. + http://example.com/balıklar/zargana.html şeklindeki bir + istek için istemciye /var/http/html/balıklar/zargana.html + dosyası sunulur.

+ +

Bir dizin istenirse (/ ile biten bir yol belirtilmesi + durumu), sunulacak dosya DirectoryIndex yönergesinde belirtilen dosya olacaktır. + Örneğin, DocumentRoot yukarıdaki gibi belirtimiş ve siz de + şunu belirtmişseniz:

+ +

DirectoryIndex index.html index.php

+ +

http://www.example.com/fish/ isteği, httpd'nin + /var/www/html/fish/index.html dosyasını sunmaya, bu dosya + bulunmuyorsa /var/www/html/fish/index.php dosyasını sunmaya + çalışmasına sebep olacaktır.

+ +

Bu dosyaların ikisi de bulunmuyorsa sonraki adım, + mod_autoindex yüklü ve uygun şekilde yapılandırılmışsa + bir dizin içeriği dosyası sağlamaya çalışmak olacaktır.

+ +

httpd ayrıca, sunucunun birden fazla konak için istek kabul etmesini + sağlayan sanal barındırmaya da muktedirdir. Bu + durumda her sanal konak için ayrı bir DocumentRoot belirtilebileceği gibi sunulacak içeriğin + istekte bulunulan IP adresi veya konak ismine dayanarak devingen olarak + saptanmasını sağlayabilen mod_vhost_alias modülüyle + gelen yönergeler de kullanılabilir.

+ +

DocumentRoot yönergesi + yapılandırma dosyanızda ana sunucu için bir tane ve muhtemelen + oluşturduğunuz her sanal konak için de birer + tanedir.

+
top
+
+

Belge Kök Dizini Dışındaki Dosyalar

+ +

Bazen dosya sisteminde doğrudan DocumentRoot altında bulunmayan dosyalara da erişim izni + vermek gerekir. httpd’de bunu sağlamanın çeşitli yolları vardır. Unix + sistemlerinde sembolik bağlar sayesinde dosya sisteminin farklı + yerlerindeki dosyaları ve dizinleri DocumentRoot altındaymış gibi göstermek mümkündür. + Options yönergesine değer olarak + FollowSymLinks veya SymLinksIfOwnerMatch + atanmadıkça httpd olası güvenlik açıklarına karşı öntanımlı olarak + sembolik bağları izlemez.

+ +

Bundan başka, dosya sisteminin farklı parçalarını belge kök dizini + altında göstermek için Alias + yönergesi de kullanılabilir. Örneğin,

+ +
Alias "/belgeler" "/var/http"
+ + +

yapılandırması ile + http://example.com/belgeler/dizin/dosya.html URL’si için + dosya sistemindeki /var/http/dizin/dosya.html dosyası + sunulacaktır. Hedef dizindeki dosyaları birer CGI betiği olarak imlemesi dışında ScriptAlias yönergesi de aynı şekilde + çalışır.

+ +

Biraz daha fazla esnekliğin gerektiği durumlarda düzenli ifadelere dayalı eşleşmeler sağlamak + üzere AliasMatch ve ScriptAliasMatch yönergelerinin gücünden + yararlanılabilir. Örneğin,

+ +
ScriptAliasMatch "^/~([a-zA-Z0-9]+)/cgi-bin/(.+)" "/home/$1/cgi-bin/$2"
+ + +

satırı sayesinde http://example.com/~user/cgi-bin/betik.cgi + URL’si /home/user/cgi-bin/betik.cgi dosyası ile + eşleştirilir ve dosya bir CGI betiği olarak çalıştırılırdı.

+
top
+
+

Kullanıcı Dizinleri

+ +

Geleneksel olarak Unix sistemlerinde belli bir kullanıcının (örn, + birisi) ev dizinine ~birisi/ şeklinde atıfta + bulunulabilir. mod_userdir modülü bu özelliği site + üzerinden kullanıcıların ev dizinlerindeki dosyaları kişisel sayfalar + olarak sunmalarını sağlamak üzere kullanır. Örnek:

+ +

http://example.com/~birisi/dosya.html

+ +

Güvenlik sebebiyle kullanıcıların ev dizinlerine doğrudan HTTP erişimi + vermek uygun olmaz. Bu bakımdan, kullanıcının ev dizini altında HTTP + erişimi verilecek dosyaların bulunduğu dizini belirtmek için UserDir yönergesi sağlanmıştır. + Öntanımlı olan Userdir public_html yapılandırması ile + yukarıdaki gibi bir URL kullanıcının ev dizini (/etc/passwd + dosyasında belirtilir) /home/birisi/ altında yer alan + /home/birisi/public_html/dosya.html dosyası ile + eşleşirdi.

+ +

Ev dizininin yerinin /etc/passwd dosyasında belirtilmediği + sistemlerde kullanılmak üzere Userdir yönergesinin başka + kullanım şekilleri de vardır.

+ +

Bazı kişiler (genellikle URL üzerinde %7e olarak + kodlanması sebebiyle) "~" simgesini biçimsiz bulabilir ve kullanıcı + dizinlerini imlemek için başka bir karakter kullanmayı tercih + edebilirler. Bu işlevsellik mod_userdir tarafından + desteklenmemektedir. Ancak, kullanıcı dizinleri düzgün şekilde + yapılandırılmışsa istenen etki AliasMatch yönergesi ile sağlanabilir. + Örneğin, http://example.com/sayfalar/birisi/dosya.html + URL’si ile /home/birisi/public_html/dosya.html dosyasını + eşlemek için AliasMatch yönergesi şöyle + kullanılabilirdi:

+ +
AliasMatch "^/sayfalar/([a-zA-Z0-9]+)(/(.*))?$" "/home/$1/public_html/$3"
+ +
top
+
+

URL Yönlendirme

+ +

Yukarıdaki bölümlerde açıklanan yapılandırma yönergeleri httpd’ye + içeriği dosya sisteminin belli bir yerinden alıp istemciye göndermesini + söyler. Bazen istemciye, istediği içeriğe farklı bir URL ile + erişebileceğini ve bu URL için ayrı bir istek yapması gerektiğini + bildirmek gerekir. Bu işleme yönlendirme adı verilir ve bu + işlevsellik Redirect yönergesi + ile sağlanır. Örneğin, DocumentRoot + altındaki /foo/ dizininin içeriğinin /bar/ + adında yeni bir dizine taşınması halinde istemciye yeni konumun + bildirilmesi şöyle sağlanabilirdi:

+ +
Redirect permanent "/foo/" "http://example.com/bar/"
+ + +

Bu atama sayesinde /foo/ ile başlayan URL yolları + example.com sunucundaki /bar/ dizini altındaki + içeriğe yönlendirilmektedir. Yönlendirmeyi aynı sunucu üzerinde yapmak + zorunda değilsiniz, bu yönerge ile başka bir sunucuya da yönlendirme + yapabilirsiniz.

+ +

httpd ayrıca, yeniden yazma ile ilgili daha karmaşık sorunlara çözüm + olarak RedirectMatch diye bir + yönerge daha sağlar. Örneğin bir sitenin baş sayfasını diğer isteklerden + ayrı olarak farklı bir siteye yönlendirmek için yönergeyi şöyle + kullanabilirsiniz:

+ +
RedirectMatch permanent "^/$" "http://example.com/ilksayfa.html"
+ + +

Bundan başka, bir sitedeki tüm sayfalara yapılan istekleri başka bir + siteye geçici olarak yönlendirmek için şöyle bir şey yapabilirsiniz:

+ +
RedirectMatch temp ".*" "http://mesela.example.com/ilksayfa.html"
+ +
top
+
+

Karşı Vekil

+ +

httpd ayrıca, uzak sunuculardaki belgelerin yerel sunucunun URL + alanına getirilmesini de mümkün kılar. Bu tekniğe HTTP sunucunun + belgeleri uzak bir sunucudan alıp istemciye sunmasını sağlayarak bir + vekil sunucu gibi davranması nedeniyle ters vekalet adı + verilir. Belgelerin istemciye özkaynağın bulunduğu sunucudan + geliyormuş gibi değilde doğrudan isteği yaptığı sunucudan geliyormuş + gibi sunulması nedeniyle bu işlem normal vekaletten farklıdır.

+ +

Aşağıdaki örnekte, istemci /foo/ dizini altından bir belge + istemekte, sunucu ise bu belgeyi dahili.example.com + üzerindeki /bar/ dizininden alıp istemciye yerel sunucudan + geliyormuş gibi sunmaktadır:

+ +
ProxyPass "/foo/" "http://dahili.example.com/bar/"
+ProxyPassReverse "/foo/" "http://dahili.example.com/bar/"
+ProxyPassReverseCookieDomain dahili.example.com harici.example.com
+ProxyPassReverseCookiePath "/foo/" "/bar/"
+ + +

ProxyPass sunucuyu uygun + belgeleri alması için yapılandırırken ProxyPassReverse yönergesi dahili.example.com + sunucusundan kaynaklanan yönlendirmeleri yeniden yazar, böylece bunların + yerel sunucudaki yerleri belirlenmiş olur. Benzer şekilde, ProxyPassReverseCookieDomain ve + ProxyPassReverseCookiePath + yönergeleri de arka sunucu tarafından atanan çerezleri yeniden yazar.

+ +

Yalnız, belgelerin içindeki hiperbağların yeniden yazılmayacağına + dikkat ediniz. Dolayısıyla, belge içinde + dahili.example.com’u ismiyle hedef alan mutlak hiperbağlar + varsa bunlar istemci tarafından vekil sunucudan değil doğrudan + dahili.example.com’dan istenecektir. Bir sayfanın içindeki bu + bağları (ve diğer içeriği) mod_substitute modülü + kullanılarak istemciye sunuluyormuşçasına değiştirebilirsiniz.

+ +
Substitute "s/dahili\.example\.com/harici.example.com/i"
+ + +

HTML ve XHTML’de hiperbağları daha bilgece yeniden yazabilen + mod_proxy_html modülü de kullanılabilir. Yeniden + yazılması gereken URL eşlemlerini oluşturmanızı sağlar, böylece karmaşık + vekil senaryoları oluşturulabilir.

+
top
+
+

Yeniden Yazma Motoru

+ +

Daha güçlü ikameler gerektiğinde mod_rewrite modülü + tarafından sağlanan yeniden yazma motoru işe yarayabilir. Bu modüldeki + yönergeler sunulacak içeriğin yerine karar vermek için kaynak IP adresi, + tarayıcı türü gibi isteğe özgü özellikleri kullanırlar. + mod_rewrite modülü buna ek olarak isteğin nasıl ele + alınacağına karar vermek için harici yazılımları ve veritabanlarını + kullanabilir. Yeniden yazma motoru yukarıda değinilen üç eşleşme türünü + de uygulayabilecek yetenektedir: Dahili yönlendirmeler (rumuzlar), + harici yönlendirmeler ve vekalet. mod_rewrite modülü + tarafından sağlanan yeteneklerin ayrıntılı açıklamaları ve bunların + kullanım örnekleri ayrıntılı olarak mod_rewrite + belgelerinde bulunmaktadır.

+
top
+
+

Dosya orada yok

+ +

Kaçınılmaz olarak, dosya sisteminde mevcut olmayan dosyalar için de + istek yapılacaktır. Bunun çeşitli sebepleri olabilir. Bazı durumlarda + bu, belgelerin yerlerininin değiştirilmesinin bir sonucu olabilir. Bu + durumda yapılacak en iyi şey, istemciyi belgeyi yeni yerinden istemesi + için bilgilendirmek amacıyla URL yönlendirmesi + kullanmaktır. Bu şekilde, içeriğin yeri değişse bile eski yer imlerinin + ve hiperbağların çalışmaya devam edeceklerinden emin olabilirsiniz.

+ +

"Dosya orada yok" ("File Not Found") hatalarının diğer bir bildik + sebebi de URL’lerin hiperbağlarda veya doğrudan tarayıcıda kasıtlı ya da + kasıtsız, yanlış yazılmasıdır. Bu tür sorunlarda yardımcı olması için + httpd mod_speling (sic) adında bir modülle gelir. Bu + modül etkin kılındığında htpd, "Dosya orada yok" ("File Not Found") + hatalarının önünü kesip başka bir yerde benzer isimde bir dosya var mı + diye bakar. Böyle bir dosya varsa, mod_speling + istemciye dosyanın doğru yerini bildiren bir HTTP yönlendirmesi yollar. + Benzer çok sayıda dosya varsa bunlar istemciye bir liste halinde + sunulur.

+ +

mod_speling modülünün en yararlı özelliklerinden biri + de dosya isimlerini harf büyüklüğüne duyarsız olarak arayabilmesidir. + Dosya isimlerinde harf büyüklüğünün önemli olduğu Unix benzeri sistemler + hakkında bilgisi olmayan kullanıcılara sahip sistemlerin kullanıcılarına + bu büyük yarar sağlar. Fakat modülün URL düzeltmekten başka şeyler için + de kullanılması, istemcilerden gelen neredeyse her isteğin URL + yönlendirmesine konu olmasına sebep olarak sunucunun yükünü + arttırabilir.

+ +

mod_dir modülü sanal URI'leri, onları sunan gerçek + kaynağa eşlemekte kullanılan FallbackResource yönergesini içerir. Bir 'ön denetleyici' + gerçeklerken mod_rewrite modülünün kullanılmasını + sağlamak için çok kullanışlıdır.

+ +

Yerinde bulunmayan içeriğin bulunması çabalarının tümü Apache’nin 404 + (Dosya orada yok) HTTP durum kodlu bir hata sayfası döndürmesine yol + açar. Bu sayfanın içeriği ErrorDocument yönergesi ile denetlenebilir ve Hata Yanıtlarının Kişiselleştirilmesi + bölümünde anlatıldığı gibi oldukça esnek bir şekilde + kişiselleştirilebilir.

+
top
+
+

Diğer URL Eşleme Modülleri

+ + + +

URL eşlemede kullanılabilecek diğer modüller:

+ +
    +
  • mod_actions - Bir isteği, özkaynağın MIME türüne veya + istek yöntemine bakarak bir CGI betiğine eşler.
  • + +
  • mod_dir - URL'yi sonlandıran bölü çizgisini + index.html bir dosyaya eşler.
  • + +
  • mod_imagemap - Bir isteği, bir HTML belge içindeki + bir resme yapılan kullanıcı tıklamalarına dayanarak bir URL'ye + eşler.
  • + +
  • mod_negotiation - Dil veya içerik sıkıştırması gibi + kullanıcı tercihlerine dayanarak uygun bir belgeyi seçer.
  • +
+ +
+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
top

Yorumlar

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file -- cgit v1.2.3