Varsayılan olarak Apache, yeniden yazma kurallarını uygulamak için bir .htaccess dosyası kullanılmasını yasaklar;
Adım 1 - mod_rewrite'ı etkinleştirme (Etkin değilse)
Önce mod_rewrite'ı etkinleştirmemiz gerekir. Temiz bir Apache 2 kurulumuyla kullanılabilir ancak etkin değildir.
$ sudo a2enmod rewrite
Bu modülü etkinleştirir veya modülün zaten etkin olduğunu bildirir. Bu değişiklikleri yürürlüğe koymak için Apache'yi yeniden başlatın.
$ sudo systemctl restart apache2
mod_rewrite artık tamamen etkin. Bir sonraki adımda, yönlendirmeler için yeniden yazma kurallarını tanımlamak için kullanacağımız bir .htaccess dosyası oluşturacağız.
Adım 2 - .htaccess'i Ayarlama
Nano veya favori metin düzenleyicinizi kullanarak varsayılan Apache yapılandırma dosyasını açın.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Bu dosyanın içinde, ilk satırdan başlayarak bir blok bulacaksınız. Bu bloğun içine, yapılandırma dosyanızın aşağıdaki gibi görünmesi için aşağıdaki yeni bloğu ekleyin. Tüm blokların düzgün girintili olduğundan emin olun.
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Dosyayı kaydedip kapatın. Bu değişiklikleri yürürlüğe koymak için Apache'yi yeniden başlatın.
$ sudo systemctl restart apache2
Bitti. .Htacess'iniz çalışmalıdır.
Bu bağlantı aslında birine https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04 yardımcı olabilir
400 Bad Request
Hatayı şuna eşlemek istediğinizden emin misiniz/var/www/html/404.php
?