Por padrão, o Apache proíbe o uso de um arquivo .htaccess para aplicar regras de reescrita.
Etapa 1 - Habilitando o mod_rewrite (se não estiver habilitado)
Primeiro, precisamos ativar o mod_rewrite. Está disponível, mas não ativado, com uma instalação limpa do Apache 2.
$ sudo a2enmod rewrite
Isso ativará o módulo ou alertará que o módulo já está ativado. Para efetivar essas alterações, reinicie o Apache.
$ sudo systemctl restart apache2
Agora mod_rewrite está totalmente ativado. Na próxima etapa, configuraremos um arquivo .htaccess que usaremos para definir regras de reescrita para redirecionamentos.
Etapa 2 - Configurando o .htaccess
Abra o arquivo de configuração padrão do Apache usando o nano ou seu editor de texto favorito.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Dentro desse arquivo, você encontrará um bloco começando na primeira linha. Dentro desse bloco, adicione o novo bloco a seguir para que seu arquivo de configuração seja o seguinte. Verifique se todos os blocos estão recuados corretamente.
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Salve e feche o arquivo. Para efetivar essas alterações, reinicie o Apache.
$ sudo systemctl restart apache2
Feito. Seu .htacess deve funcionar.
Este link pode realmente ajudar alguém https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04
400 Bad Request
erro/var/www/html/404.php
?