Por defecto, Apache prohíbe el uso de un archivo .htaccess para aplicar reglas de reescritura, por lo que
Paso 1: habilitación de mod_rewrite (si no está habilitado)
Primero, necesitamos activar mod_rewrite. Está disponible pero no habilitado con una instalación limpia de Apache 2.
$ sudo a2enmod rewrite
Esto activará el módulo o le avisará que el módulo ya está habilitado. Para que estos cambios surtan efecto, reinicie Apache.
$ sudo systemctl restart apache2
mod_rewrite ahora está totalmente habilitado. En el siguiente paso, configuraremos un archivo .htaccess que usaremos para definir reglas de reescritura para redireccionamientos.
Paso 2: configuración de .htaccess
Abra el archivo de configuración predeterminado de Apache con nano o su editor de texto favorito.
$ sudo nano /etc/apache2/sites-available/000-default.conf
Dentro de ese archivo, encontrará un bloque que comienza en la primera línea. Dentro de ese bloque, agregue el siguiente bloque nuevo para que su archivo de configuración tenga el siguiente aspecto. Asegúrese de que todos los bloques estén sangrados correctamente.
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Guarde y cierre el archivo. Para que estos cambios surtan efecto, reinicie Apache.
$ sudo systemctl restart apache2
Hecho. Su .htacess debería funcionar.
Este enlace puede ayudar a alguien https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04
400 Bad Request
error/var/www/html/404.php
?