In this tutorial, we are going to walk you through the process of enabling mod_rewrite on your AwardSpace web server.

What is Mod_Rewrite?

Mod_rewrite is an Apache module that helps you perform redirects and define rewrite rules with the use of a .htaccess file.

For more detailed information, please visit the official Apache Module mod_rewrite page.

How Can I Enable the Apache Rewrite Module on a Shared Hosting Account?

The Apache module mod_rewrite comes preinstalled with all shared hosting plans. Therefore, you will not be required to perform any manual installation of the module on the server.

Start a website with a 99.9% uptime!

Prices starting at $2.99/year!

In order to enable the rewrite module on your website, make sure that your .htaccess contains the following two lines of code:

  RewriteEngine On
  RewriteBase /

At the end, your code should look similar to the following:

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]

Note: If you have installed your application in a sub-directory of your domain name (domain.com/site/ for example), it will be necessary to make a couple slight modifications to the code:

  RewriteEngine On
  RewriteBase /site/
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /site/index.php [L]

Please make sure that you replace site with your actual directory name.

How Can I Enable the Rewrite Module on a VPS Server?

On a Debian/Ubuntu server, the Apache rewrite module is installed, but not enabled by default.

If you have an active VPS account and wish to enable mod_rewrite on your web server, you should perform the following steps:

1. Log into your VPS account via SSH and execute the following command in Terminal:

  a2enmod rewrite

2. Restart the Apache web server:

  /etc/init.d/apache2 restart

3. Locate the main .htaccess file in your web application’s root directory, and then copy and paste the below code into it:

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]

Save the changes you have just made and re-test your application.


Keep reading