|
|
|
|
Unix / Linux / Windows Server Güvenliği ve Yönetimi Uzaktan erişim ile Web, Dns, Mail Server ve Firewall Kurulumu İşyeri ve Ev bilgisayarlarının Kontrolü ve Bakımı Kurumsal veya Kişisel web sayfası hazırlama ve güncellenmesi Detaylar için Tıklayın
|
|
|
Dökümanlar » Apache » Apache Mod_Rewrite Kullanımı ve Ayarları
Apache Mod_Rewrite Kullanımı ve Ayarları
Apache ‘nin mod_rewrite özelliği web sayfalarında karşımıza çıkan karışık url uzantılarını düzenli bir yapıya sokmak ve url işlemlerini yönetmemizi sağlayan çok kullanışlı bir modüldür. Mod_rewrite sayesinde karmaşık bir şekilde bulunan url uzantıları daha kullanışlı ve akılda kalıcı olarak tasarlanabilir. http://www.tcpsecurity.com/?p=201 Uzantısı ?p=201 şeklindeki olan bir url mod_rewrite sayesinde aşağıdaki gibi düzenli bir şekle girebilmektedir. http://www.tcpsecurity.com/apache/apache-mod_rewrite-kullanimi-ve-ayarlari.html Mod_rewrite Özelliğini Kullanmak İçin Apache httpd.conf Ayarlarını Yapalım .htaccess dosyasına ve URL Rewrite komutlarına geçmeden önce Apache’i ayarlarının bulunduğu httpd.conf dosyası içinde mod_rewrite modülünün yüklü olup olmadığını kontrol etmeliyiz. Kullandığım sistem FreeBSD olduğundan bu sisteme göre anlatmak istiyorum fakat apache httpd.conf dosyası genelde tüm sistemlerde aynı olduğundan bir farklılık olacağını pek sanmıyorum. Konsol üzerinde aşağıdaki verilen komutla modülün yüklü olup olmadığını görebiliriz. Diğer sistemlerde httpd.conf dosyasını herhangi bir editörle açarak modül aramasını yapabilirsiniz. tcpsecurity# grep “mod_rewrite.so” /usr/local/etc/apache/httpd.conf Sistemimizde mod_rewrite modülü yüklü gözüküyor.Eğer modül satırı önünde # işareti varsa kaldıralım ve httpd.conf dosyasını kayıt ederek apache ‘yi yeniden başlatalım. Yukarıdaki ayarları bitirdikten sonra apache httpd.conf dosyasının en altına yeni bir VirtualHost bölümü tanımlayarak web sayfası veya dökümanlarımızın bulunduğu klasör yolunu gösterelim. NameVirtualHost 10.0.0.2 <VirtualHost 10.0.0.2> <Directory “/var/tcpsecurity/www”> </VirtualHost> Önemli Not : Directory tagları içinde bulunan Options ve AllowOverride seçimi All şeklinde olmalı aksi halde mod_rewrite url yönlendirmesi çalışmaz. Mod_Rewrite İçin .htaccess Dosyasının Görevi .htaccess (Hypertext Access) Apache sunucusu tarafından kullanılan ve sunucu üzerinde dizin ve klasör bazlı birçok işlemi gerçekleştirebilen ayar dosyasıdır.Bu dosya yayınlanmak istenen klasör ve dizin içinde bulunmaktadır ve sunucuya gönderilen her istek ile birlikte dizinler en üstten başlayarak en alta kadar taranır.Herhangi bir dizinde .htaccess dosyası bulunmuyorsa üst dizinlerdeki ayarlar geçerli olur. Eğer hiçbir .htaccess dosyası yoksa sunucu için geçerli varsayılan ayarlar kullanılır.URL Rewrite komutları tüm sunucu genelinde kullanılmak Şimdi httpd.conf bölümünde VirtualHost içinde belirttiğimiz ” /var/tcpsecurity/www/ ” dizin yolu içine bir .htaccess dosyası oluşturarak aşağıda anlatılan URL Rewrite komutlarını .htaccess dosyasına içine yazalım. URL Rewrite için Kullanılan Bazı Komutlar RewriteEngine ” RewriteEngine on | off ” komutları Rewrite yazma motorunu açıp kapatabilmemizi sağlar. Apache ‘de URL Rewrite öntanımlı olarak kapalı gelmektedir bu özelliği kullanabilmek için açık duruma getirmeliyiz. İlk olarak .htaccess dosyasına aşağıdaki satırı ekliyoruz RewriteEngine on RewriteRule Yapmak istediğimiz url değişikliklerini ve yönlendirmelerini bu komut sayesinde yapabiliriz. RewriteEngine on Bu şekilde eski_tcpsecurity.html sayfasını açmaya çalıştığınızda yeni_tcpsecurity.html sayfasının açıldığını göreceksiniz. RewriteCond RewriteCond komutu ile değişik türde yönlendirmelerde yapabiliriz. RewriteEngine on Bu şekilde hazırlanmış bir .htaccess dosyası ip adresleri 88.95. ile başlayan ziyaretçileri eski_tcpsecurity.html yerine yeni_tcpsecurity.html sayfasına yönlendirecektir. Wordpress için rewriterule yönlendirme örneğini şu şekilde yazabiliriz. RewriteCond %{THE_REQUEST} dokuman.php Bu örnekte ise dokuman.php ‘ye gelen her istek Rewriterule ile belirttiğimiz http://www.tcpsecurity.com/dokumanlar adresine yönlendirilmektedir. Bu şekilde wp üzerinde eski linkleri yeni linklere yönlendirebiliriz. Bu dökümanda Apache Mod_Rewrite modülünü ve bu modül için httpd.conf, .htaccess dosyaları içinde yapılan ayarları ve Rewrite komutlarını basitçe anlatmış oldum. Zaman bulduğum taktirde detaylı Rewrite kurallarını bu bölüme eklemeyi düşünüyorum. Dökümanı Hazırlayan : Osman Atabey & www.TcpSecurity.com |