Search code examples
php.htaccessmod-rewriteamazon-ec2ec2-api-tools

.htaccess not working in amazon ec2 ubuntu instance


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.


Solution

  • 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.