Recently I was configuring Laravel application in Amazon AWS EC2 instance which was having Ubuntu and Apache installed. The problem was htacess file was not working so Laravel routes were not working. Instead of parsing laravel routes it always shows error URL not found.
The problem is by default in apache installed on ubuntu doesn’t have .htaccess enabled so first you have to manually enable it in config file and restart apache.
Here are the steps.
1) Login to your EC2 instance with SSH.
ssh -i “Yourkey.pem” ubuntu@yourpublicip
2) Enable Mode Rewrite, this is just incase if it’s not enabled.
sudo a2enmod rewrite
3) Go to following directory.
cd /etc/apache2/sites-available
If you use LS command here you will see following file.
000-default.conf
That’s the file with default apache configuration which are applied to your sites in /var/www/html folder.
4) Open this file for editing.
sudo nano 000-default.conf
5) Add following lines after DocumentRoot /var/www/html line.
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
6) Save the file and restart the apache.
sudo service apache2 restart
that’s it and now your .htaccess file will work and your application will start working.