Mod_rewrite, kural tabanlı bir yönlendirme motoru kullanan Apache modülüdür. İstenen URL’yi yeni bir URL’ye çevirmek ve yeniden yönlendirmek için kullanılır. Bir URL’nin dinamik olarak değiştirilmesine izin verir. Böylece ziyaretçi, adres çubuğundaki URL değişikliğini asla görmez. Mod_rewrite ile sınırsız sayıda kuralı yeniden yazabilirsiniz. Bu, URL’yi ortam değişkenlerine, HTTP başlıklarına ve sunucu değişkenlerine göre yeniden yazmanıza olanak tanır.
Adım 1: Sunucuda Oturum Açın ve Sunucu İşletim Sistemi Paketlerini Güncelleyin
Öncelikle, root kullanıcısı olarak SSH aracılığıyla Ubuntu 20.04 sunucunuzda oturum açın:
ssh root@IP_Address -p Port_number
‘IP_Address’ ve ‘Port_number’ı sunucunuzun ilgili IP adresi ve SSH port numarasıyla değiştirmelisiniz. Ayrıca, gerekirse yönetici hesabının kullanıcı adını ‘root’ ile değiştirmelisiniz.
Kuruluma başlamadan önce, sunucuda kurulu olan tüm Ubuntu OS paketlerinin güncellendiğinden emin olmalıyız. Bunu aşağıdaki komutları çalıştırarak yapabilirsiniz:
apt-get update -y apt-get upgrade -y
Adım 2: Apache Web Sunucusunu Kurun
Başlamadan önce, Apache web sunucusu paketinin sisteminizde kurulu olduğundan emin olun. Yüklenmemişse, aşağıdaki komutla kurabilirsiniz:
apt-get install apache2 -y
Paket yüklendikten sonra, Apache hizmetini aşağıdaki komutla başlatın:
systemctl başlangıç apache2
Ardından, web tarayıcınızı açın ve Apache web sunucusunu doğrulamak için http: // sunucunuz-ip URL’sini yazın . Her şey yolundaysa, Apache test sayfasını görmelisiniz:
3. Adım: mod_rewrite’ı etkinleştirin
Varsayılan olarak, mod_rewrite modülü Apache paketiyle birlikte kurulur, ancak devre dışı bırakılır. Bu yüzden önce etkinleştirmeniz gerekecek.
Aşağıdaki komutla etkinleştirebilirsiniz:
a2enmod rewrite
Ardından, değişiklikleri uygulamak için Apache hizmetini yeniden başlatın.
Ardından, Apache mod_rewrite modülünü aşağıdaki komutla doğrulayın:
apache2ctl -M | grep rewrite_module
Aşağıdaki çıktıyı almalısınız:
rewrite_module (shared)
4. Adım: .htaccess Dosyalarını etkinleştirin
Yeniden yazma kurallarını doğrudan Apache ana yapılandırma dosyasında ayarlayabilirsiniz. Ancak, her web sitesinin içindeki .htaccess dosyasına kurallar yazmanız önerilir.
Varsayılan olarak Apache, .htaccess dosyasının kullanılmasına izin vermez. Bu nedenle, varsayılan sanal ana bilgisayar yapılandırma dosyanızdaki .htaccess dosyasını etkinleştirmeniz gerekecektir.
Bunu yapmak için, Apache varsayılan sanal host yapılandırma dosyasını düzenleyin:
nano /etc/apache2/sites-available/000-default.conf
Satırdan önce aşağıdaki satırları ekleyin:
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
Dosyayı kaydettiğinizden ve kapattığınızdan emin olun, ardından değişiklikleri uygulamak için Apache hizmetini yeniden başlatın:
systemctl restart apache2
5. Adım: URL Yeniden Yazmalarını Yapılandırın
URL yönlendirme işlemlerinin nasıl çalıştığını anlamak için Apache belge kök dizininde bir home.html sayfası oluşturacağız. Daha sonra, http: // sunucunuz-ip / home sayfasına erişmeye ve onu gerçek sayfa yolu http: // sunucunuz-ip/home.html’ye dönüştürmeye izin verecek temel bir yönlendirme URL’si kuracağız.
İlk önce bir home.html sayfası oluşturalım:
nano /var/www/html/home.html
Aşağıdaki içerikleri ekleyin:
<html> <head> <title> Ana Sayfa </title> </head> <body> <h1> Ana Sayfa </h1> <h2> Bu benim ana sayfam </h2> </body> </html>
Bitirdiğinizde dosyayı kaydedin ve kapatın.
Ardından, mod_rewrite’ı test etmek için web sitesinin varsayılan belge kök dizininde bir .htaccess dosyası oluşturun.
nano /var/www/html/.htaccess
İlk olarak, yönlendirme motorunu etkinleştirmek için aşağıdaki satırı ekleyin:
RewriteEngine on
Ardından, http: // sunucunuz-ip / ev sayfasını isteyen ziyaretçileri home.html’ye yeniden yönlendiren aşağıdaki kuralı ekleyin.
RewriteRule ^home$ home.html [NC]
Bitirdiğinizde dosyayı kaydedin ve kapatın.
Yönlendirme söz diziminin kısa bir açıklaması aşağıda gösterilmiştir:
- ^ Bu, sunucu IP adresinden sonraki herhangi bir metinle eşleşecektir.
- $ Bu, URL’nin sonunu gösterecektir.
- home Bu gerçek ev dizesiyle eşleşecek
- home.html Bu, ziyaretçinin eriştiği gerçek dosyayı tanımlayacaktır.
- [NC] Bu, kuralın büyük / küçük harf duyarlılığını ortadan kaldırır.
Artık web tarayıcınızda http: // sunucunuz-ip / home adresindeki ana sayfayı ziyaret edebilirsiniz .
Yazının orijinalini buradan okuyabilirsiniz.