.htaccess not working in amazon ec2 ubuntu instance

12,980

Solution 1

This happens because the rewrite module doesn’t come enabled by default for security reasons.

Create a new file called rewrite.conf in /etc/apache2/mods-enabled in the file put this line LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Now reload server sudo service apache2 restart

This worked for me and hopefully for you, but I don’t advice this for production servers. This is information for regular Ubuntu users not for a live server.

Solution 2

This is wat worked for me on a fresh EC2 instance with Ubuntu 13.10:

  • a2enmod rewrite
  • vim /etc/apache2/sites-enabled/000-default.conf
  • add the following to the VirtualHost
<Directory "/var/www">
  AllowOverride All
</Directory>
  • service apache2 restart

Solution 3

The problem is by default in apache installed on Ubuntu doesn't have .htaccess enabled so first you have to manually enable it in a 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 the following directory.

cd /etc/apache2/sites-available

If you use LS command here you will see the following file.

000-default.conf

That's the file with default apache configuration which is 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.

Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all

6) Save the file and restart the apache.

sudo service apache2 restart

that's it and now your .htaccess file will work

Share:
12,980
user1491022
Author by

user1491022

Updated on June 16, 2022

Comments

  • user1491022
    user1491022 almost 2 years

    I have a server from amazon's ec2 service running on Linux Ubuntu ( Ubuntu Server 13.04 64 bit) and I have installed apache, php, and mysql. I have added a .htaccess file in my document root (i.e /var/www/).

    Here is the code in .htaccess file as follows:

    RewriteEngine on 
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    

    If I remove .php from url like "index1" instead of "index1.php", it returns 404 browser error. It works properly in my previous server.

    I have .htaccess enabled in server. I did it using command "sudo vim /etc/apache2/sites-available/default" and changed "AllowOverride None" to "AllowOverride All".

    I have also checked .htaccess working by passing invalid value in htaccess file and it returns "Internal server error - 500" in browser.

    Here is the link of my server information : http://54.200.58.45/mytest.php

    Any help in this regard will be highly appreciated.

  • user1491022
    user1491022 over 10 years
    I have used "sudo a2enmod rewrite" to enable mod rewrite but it shows that "Module rewrite already enabled".
  • EnglishAdam
    EnglishAdam about 9 years
    A couple of questions for a non 'regular Ubuntu user' ....What would be the approach for a live server? What risks are in the above? Thx!
  • urfusion
    urfusion almost 9 years
    not worked for me.. putty return module_rewrite is already loaded skipping