Apache: Yeniden Yazma (mod_rewrite) Modülü Nasıl Etkinleştirilir

Apache’nin mod_rewrite modülü, URL manipülasyonu için mevcut en güçlü modüllerden biridir. mod_rewrite ile URL’leri yeniden yönlendirebilir, daha temiz hale getirmek için URL’leri yeniden yazabilir ve çok daha fazlasını yapabilirsiniz. Özellikle web sitenize SEO dostu URL yapılarını uygulamak için kullanışlıdır. Bu makalede, hem Debian tabanlı hem de RHEL tabanlı sistemlerde Apache’de mod_rewrite’ın nasıl etkinleştirileceği konusunda size yol göstereceğiz.

1. mod_rewrite’ın Zaten Etkin olup olmadığını kontrol edin

mod_rewrite’ı etkinleştirmeden önce, zaten etkin olup olmadığını kontrol etmek iyi bir fikirdir:

apache2ctl -M | grep rewrite 

VEYA

httpd -M | grep rewrite 

‘rewrite_module (shared)’ ifadesini görüyorsanız mod_rewrite zaten etkindir.

2. mod_rewrite’ı etkinleştirme

Şimdi işletim sisteminize bağlı olarak Apache web sunucusunda mod_rewrite modülünü etkinleştirin.

Debian Tabanlı Sistemlerde (Ubuntu gibi):

Bu adımları Ubuntu, Debian, Linux Mint sistemleri gibi Debian tabanlı sistemlerde kullanın.

  1. Apache’yi yükleyin (henüz kurulmamışsa):
    sudo apt update
    sudo apt install apache2
  2. mod_rewrite’ı etkinleştirin:
    sudo a2enmod rewrite
  3. Değişiklikleri uygulamak için Apache’yi yeniden başlatın:
    sudo systemctl restart apache2

RHEL Tabanlı Sistemlerde (CentOS gibi):

Fedora, CentOS, Scientific Linux, Amazon Linux ve RedHat sistemleri gibi RHEL tabanlı sistemlerde bu adımları kullanın.

  1. Apache’yi yükleyin (henüz kurulmamışsa):
    sudo yum install httpd
  2. Mod_rewrite’ı etkinleştirme: Modül genellikle RHEL tabanlı sistemlerde varsayılan olarak etkinleştirilir. Değilse Apache yapılandırmasını düzenleyerek manuel olarak yükleyebilirsiniz. Ana Apache yapılandırma dosyasını vi veya nano gibi bir metin düzenleyici kullanarak düzenleyin:
    sudo nano /etc/httpd/conf/httpd.conf
    Ardından, aşağıdaki satırın mevcut olduğundan ve yorumlanmadığından emin olun:
    LoadModule rewrite_module modules/mod_rewrite.so
  1. Değişiklikleri uygulamak için Apache’yi yeniden başlatın:
    sudo systemctl restart httpd

3. mod_rewrite için .htaccess’i yapılandırma

mod_rewrite kurallarının .htaccess dosyalarından çalışması için dizin yapılandırmalarının geçersiz kılmaya izin verdiğinden emin olmalısınız.

Apache yapılandırma dosyasında (genellikle Debian tabanlı sistemlerde /etc/apache2/apache2.conf veya RHEL tabanlı sistemlerde /etc/httpd/conf/httpd.conf), web sitenizin belge köküne ilişkin bölümü bulun ve ` AllowOverride` direktifi:


<Directory /var/www/html>
    AllowOverride All
</Directory>

Değişiklik yaptıktan sonra daima Apache’yi yeniden başlatmayı unutmayın.

4. mod_rewrite’ın test edilmesi

mod_rewrite’ın doğru çalıştığından emin olmak için .htaccess dosyasında temel bir kural oluşturabilirsiniz:

  1. Belge kökünüzde (örneğin, /var/www/html), .htaccess dosyasını oluşturun veya düzenleyin:
    nano /var/www/html/.htaccess
  2. Aşağıdaki içeriği ekleyin:
    RewriteEngine On RewriteRule ^hello\.html$ welcome.html [R=302,L]
  3. Şimdi bir hoş geldiniz.html dosyası oluşturun:
    echo "Welcome, TecAdmin!" > /var/www/html/welcome.html
    http://sunucunuzun_ipsi/hello.html adresine erişim artık sizi http://sunucunuzun_ipsi/welcome.html adresine yönlendirmelidir.

Yazının orijinalini buradan okuyabilirsiniz.