08-24-2019, 12:30 PM
Apache‘nin mod_rewrite modülü URL bağlantılarını manipüle etmenin etkili ve kolay bir yoludur. URL manipülasyonu sunucu tarafından yapılmaktadır. Basitçe anlatmak gerekirse mod_rewrite ile temiz ve kullanıcı dostu URL’ler web sitelere dönüştürülür. Adından da anlayabileceğiniz gibi URL’de yeniden yazma işlemi yapar. Web sitenizin URL’lerini temizlemek için harika bir yoldur.
Apache mod_rewrite Nasıl Çalışır?
Bir kullanıcı bir URL girdiğinde, URL önceden belirlenmiş kurallar listesine göre kontrol edilir. Kurallar belirli kalıpları veya anahtar kelimeleri aramak için vardır. Eğer URL’de anahtar kelime mevcutsa ve kurala uyuyorsa önceden belirlenmiş bir dizi yani URL ile değiştirilir.
mod_rewrite’ı Kullanışlı Yapan Nedir?
mod_rewrite’ın sunduğu en büyük avantaj URL’leri temiz URL’lere çevirebilmesidir. Bu da teknolojiyle arası pek olmayan uçtaki kullanıcı tarafından kolaylıkla anlaşılabilir.
Bu URL’ler oldukça kullanıcı ve arama dostudur. Arama motorları bu URL’leri daha hızlı algılar. Temiz URL derken kastımız ne? Bu örnekle anlayacaksınız:
Yukarıda listelenen üç URL’den çıkarabileceğimiz sonuç uçtaki kullanıcıya üçüncünün ilk ve ikinciden çok daha fazla okunabilir ve anlaşılabilir olduğudur. Bu örneğe göre URL3 temiz bir URL’dir.
Linux VPS’de Apache mod_rewrite Modülü Kurulumu Nasıl Yapılır?
Unutmayın ki başlamadan önce SSH kullanarak VPS’inize erişmeniz gerekmektedir!
1. Install Apache
Bu örneğimiz için Ubuntu 18.04 kullanacağız. Yerleşik paket yükleyicisi bulunmaktadır – apt-get. İlk olarak bu komutu kullanarak güncelleme yapın:
Şimdi apache2 kurulumuna devam edebilirsiniz. Kurulum için gereken komut:
2. mod_write Aktif Etme
Şimdi ise mod_write aktif etme nasıl yapılır göstereceğiz. Aktif etmek için gereken komutsa:
Yukarıdaki komut mod_write modülünü aktif edecek veya zaten kullanımdaysa size bildirecektir. Bundan sonra Apache’yi yeniden başlatın:
3. .htaccess Dosyasını oluşturun
URL yeniden yazma kuralları önceden belirlenmiş olmalıdır. İşte burada .htaccess yardımınıza gelecektir. Bütün kuralları .htaccess dosyasına yazabilirsiniz. Bu dosya sunucu tarafından kullanılmaktadır. Bu dosyada hiçbir hata olmamalıdır aksi takdirde sunucu hatası alırsınız. Yeniden yazma kurallarını istediğiniz zaman düzenleyebilirsiniz.
.htaccess dosyası yeniden yazma fonksiyonelliğini test etmek için kökte oluşturulmalıdır. İlk önce aşağıdaki komutu çalıştırın:
Bu eğer henüz bulunmuyorsa .htaccess dosyasını oluşturacak eğer zaten varsa olan dosyayı açacaktır. Şimdilik kaydedip çıkabilirsiniz. Nano’da bunu CTRL+O tıklayarak kaydedebilir ve CTRL+X ile de çıkabilirsiniz.
Şimdi ise /etc/apache2/sites-enabled/ dizininde bulunan 000-default.conf dosyasını açın. Aşağıdaki komutla bunu yapabilirsiniz:
Bu dosyanın içinde <VirtualHost *:80> dizisinin altına aşağıdaki sütunu kopyalayıp yapıştırın:
.htaccess ile yaptığınız gibi dosyayı kaydedin. Yukarıdaki değişikliklerin etkisini göstermesi için ikinci aşamada belirttiğimiz gibi Apache’yi yeniden başlatın.
4. URL Yeniden Yazma
URL yeniden yazma basit olarak temiz URL’yi alır ve onları koda giden yollara çevirir. Sahip olması gereken şeylerse:
Yeniden yazma kuralını başarıyla çalıştırmak için yeniden yazma motoru aktif olmalıdır. Aşağıdaki komutu .htaccess dosyasının başına girin:
Sıradaki ise örneğimizin kuralı olacaktır:
Bu sözdizimi biraz kafa karıştırıcı olabilir ancak oldukça basittir:
İşte bu kadar! Başarıyla bir mod_rewrite kuralı yaratmış oldunuz!
Apache mod_rewrite Nasıl Çalışır?
Bir kullanıcı bir URL girdiğinde, URL önceden belirlenmiş kurallar listesine göre kontrol edilir. Kurallar belirli kalıpları veya anahtar kelimeleri aramak için vardır. Eğer URL’de anahtar kelime mevcutsa ve kurala uyuyorsa önceden belirlenmiş bir dizi yani URL ile değiştirilir.
mod_rewrite’ı Kullanışlı Yapan Nedir?
mod_rewrite’ın sunduğu en büyük avantaj URL’leri temiz URL’lere çevirebilmesidir. Bu da teknolojiyle arası pek olmayan uçtaki kullanıcı tarafından kolaylıkla anlaşılabilir.
Bu URL’ler oldukça kullanıcı ve arama dostudur. Arama motorları bu URL’leri daha hızlı algılar. Temiz URL derken kastımız ne? Bu örnekle anlayacaksınız:
- URL1: [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.]
- URL2: [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.]
- URL3: [Linkleri yalnızca üyeler görüntüleyebilir.Sizde aramıza katılmak ister misiniz? Üye Olmak İçin Buraya Tıklayın.]
Yukarıda listelenen üç URL’den çıkarabileceğimiz sonuç uçtaki kullanıcıya üçüncünün ilk ve ikinciden çok daha fazla okunabilir ve anlaşılabilir olduğudur. Bu örneğe göre URL3 temiz bir URL’dir.
Linux VPS’de Apache mod_rewrite Modülü Kurulumu Nasıl Yapılır?
Unutmayın ki başlamadan önce SSH kullanarak VPS’inize erişmeniz gerekmektedir!
1. Install Apache
Bu örneğimiz için Ubuntu 18.04 kullanacağız. Yerleşik paket yükleyicisi bulunmaktadır – apt-get. İlk olarak bu komutu kullanarak güncelleme yapın:
Kod:
sudo apt-get update
Şimdi apache2 kurulumuna devam edebilirsiniz. Kurulum için gereken komut:
Kod:
sudo apt-get install apache2
2. mod_write Aktif Etme
Şimdi ise mod_write aktif etme nasıl yapılır göstereceğiz. Aktif etmek için gereken komutsa:
Kod:
sudo a2enmod rewrite
Yukarıdaki komut mod_write modülünü aktif edecek veya zaten kullanımdaysa size bildirecektir. Bundan sonra Apache’yi yeniden başlatın:
Kod:
sudo service apache2 restart
3. .htaccess Dosyasını oluşturun
URL yeniden yazma kuralları önceden belirlenmiş olmalıdır. İşte burada .htaccess yardımınıza gelecektir. Bütün kuralları .htaccess dosyasına yazabilirsiniz. Bu dosya sunucu tarafından kullanılmaktadır. Bu dosyada hiçbir hata olmamalıdır aksi takdirde sunucu hatası alırsınız. Yeniden yazma kurallarını istediğiniz zaman düzenleyebilirsiniz.
.htaccess dosyası yeniden yazma fonksiyonelliğini test etmek için kökte oluşturulmalıdır. İlk önce aşağıdaki komutu çalıştırın:
Kod:
sudo nano /var/www/html/.htaccess
Bu eğer henüz bulunmuyorsa .htaccess dosyasını oluşturacak eğer zaten varsa olan dosyayı açacaktır. Şimdilik kaydedip çıkabilirsiniz. Nano’da bunu CTRL+O tıklayarak kaydedebilir ve CTRL+X ile de çıkabilirsiniz.
Şimdi ise /etc/apache2/sites-enabled/ dizininde bulunan 000-default.conf dosyasını açın. Aşağıdaki komutla bunu yapabilirsiniz:
Kod:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Bu dosyanın içinde <VirtualHost *:80> dizisinin altına aşağıdaki sütunu kopyalayıp yapıştırın:
Kod:
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow, deny
allow from all
</Directory>
.htaccess ile yaptığınız gibi dosyayı kaydedin. Yukarıdaki değişikliklerin etkisini göstermesi için ikinci aşamada belirttiğimiz gibi Apache’yi yeniden başlatın.
4. URL Yeniden Yazma
URL yeniden yazma basit olarak temiz URL’yi alır ve onları koda giden yollara çevirir. Sahip olması gereken şeylerse:
- Önceden belirlenmiş yeniden yazma kuralı
- Bir kalıp – sunulan kalıp kullanıcı tarafından girilen URL ile uyumlu referans olarak çalışacaktır
- Yeniden yazma satırları – işlem sırasında sunucu tarafından istenmesi gereken yolu belirleyecektir
Yeniden yazma kuralını başarıyla çalıştırmak için yeniden yazma motoru aktif olmalıdır. Aşağıdaki komutu .htaccess dosyasının başına girin:
Kod:
RewriteEngine on
Sıradaki ise örneğimizin kuralı olacaktır:
Kod:
RewriteRule ^About_us$ Hakkimizda.html [NC]
Bu sözdizimi biraz kafa karıştırıcı olabilir ancak oldukça basittir:
- Yukarıdaki kuralda About_us kalıptır, bulunduğunda ve eşlendiğinde Hakkımızda.html‘e yönlendirilecektir
- NC ise büyük-küçük harfe duyarlı olmaması kuralını belirleyen bayraktır
- ^ ise IP adresinden sonraki metnin eşlenmiş olduğunu belirtir
Kod:
RewriteEngine on
RewriteRule ^About_us$ Hakkimizda.html [NC]
İşte bu kadar! Başarıyla bir mod_rewrite kuralı yaratmış oldunuz!