Doküman

Ubuntu 20.04’te Apache için mod_rewrite kullanımı

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.