Referred from: http://kx.cloudingenium.com/linux/apache-web-server/solve-apache-error-htaccess-rewriteengine-allowed/
I turned on some .htaccess rules in order for the cache to perform faster but unfortunately it came with some unintended consequences: A bunch of 500 error pages and in the log files one of the errors was [Core:Alert] /../.htaccess: RewriteEngine not allowed here, referrer: http://Technology.Bauzas.com/…
The reason RewriteEngine is not allowed is because changing configuration settings via .htaccess files is disabled for security reasons by default. If you get an Internal Server Error screen shown on your browser (or 500 error page) and you have the message “htaccess: RewriteEngine not allowed here” in your Apache error.log (ususally found at /var/log/apache2/error.log), you will need to enable support for it via the virtual host config file.
Simply add or update the line AllowOverride to include FileInfo to your Apache virtual host, the vhost configuration file should then look like
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </Directory>
If you had other AllowOverride directives you only need to add the FileInfo one. The order I think does not matter. Also, there is no need to add Allowoverride All instead of FileInfo to your vhosts file. While it will also work as it allows ALL directives, you are exposing yourself to more than just rewriting URLs and could therefore be a security risk. Is like opening all the ports in your firewall vs just the one you need.