<-
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.5 > Rewrite

Vekil Kullanımı için mod_rewrite

Mevcut Diller:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

Bu belge, mod_rewrite başvuru belgelerini tamamlar. İçeriği başka bir sunucuya vekil olarak iletmek için RewriteRule'un [P] bayrağının nasıl kullanılacağını açıklar. Yaygın senaryoları anlatan birkaç tarif sunulmuştur.

Ayrıca bakınız:

top

mod_rewrite ile İçerik Vekilleme

Açıklama:

mod_rewrite, URL'lerin mod_proxy aracılığıyla başka bir sunucuya iletilmesini sağlayan [P] bayrağını sunar. Burada iki örnek verilmiştir. Birinde, bir URL doğrudan başka bir sunucuya iletilir ve yerel bir URL gibi sunulur. Diğerinde, eksik içeriği bir arka uç sunucusuna vekil olarak iletiriz.

Çözüm:

Bir URL'yi başka bir sunucuya basitçe eşlemek için [P] bayrağını şu şekilde kullanırız:

RewriteEngine  on
RewriteBase    "/products/"
RewriteRule    "^widget/(.*)$"  "http://product.example.com/widget/$1"  [P]
ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"

İkinci örnekte, isteği yalnızca kaynağı yerel olarak bulamadığımızda vekil olarak iletiriz. Bu, bir sunucudan diğerine geçiş yaparken ve tüm içeriğin taşınıp taşınmadığından emin olmadığınızda çok yararlı olabilir.

RewriteCond "%{REQUEST_FILENAME}"       !-f
RewriteCond "%{REQUEST_FILENAME}"       !-d
RewriteRule "^/(.*)"                    "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"
Tartışma:

Her iki durumda da, arka uç tarafından verilen yönlendirmelerin istemciye doğru şekilde iletilmesini sağlamak için bir ProxyPassReverse yönergesi ekliyoruz.

Mümkün olduğunda mod_rewrite yerine ProxyPass veya ProxyPassMatch kullanmayı değerlendirin.

Mevcut Diller:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn