I would like to know how to configure Apache to do the following:

Configuration 1

When a user points their browser to http://localhost/ (and gets the contents of /var/www/index.html) the browser redirects to http://localhost/magento/ (and gets the contents of /var/www/magento/index.php)

Configuration 2

  1. When the user enters the URL http://localhost/magento/ the contents of the directory /var/www/magento/index.php are displayed but the URL changes to http://localhost/

  2. Conversely when the user enteres http://localhost/ in their browser the URL does not change but the contents of /var/www/magento/ are displayed.

  3. http://localhost/foo/bar/foobar/ and all URLS of this sort display the contants of /var/www/magento/foo/bar/foobar instead of those of /var/www/foo/bar/foobar

I have tried defining a file called /var/www/.htaccess, which I am sure is getting parsed by apache2, but I don't see any of the above happen. What I've placed in it is:

RewriteRule / /magento/
  • The three things you've asked for are mutually exclusive. What is it that you really are trying to do? Jul 29, 2012 at 15:21

1 Answer 1


Make sure that you have these lines uncommented in your http.conf (they come commented out by default):

#LoadModule rewrite_module modules/mod_rewrite.so

This may be present for different versions of apache, uncomment if you have it.

#AddModule mod_rewrite.c

That should get the rewrite engine turned on. Now for your rules:

In your .htaccess file (that is in your website root directory) add this line at the top:

RewriteEngine on

Now with that setup you should be turned on and enabled. Now just fire off some rules. In your case I think that should look like:

RewriteRule ^/magento$ / 

Take a look at http://www.sitepoint.com/guide-url-rewriting-2/ for an easy to follow tutorial.

Make sure to check that you allow overrides from your .htaccess files. Find the <directory /> section in your httpd.conf and modify as follows:

<Directory />    
     Options FollowSymLinks    
     AllowOverride All
#    Order deny,allow
#    Deny from all

Here's a good post that explains common problems with enabling mod_rewrite: http://book.cakephp.org/1.3/view/917/Apache-and-mod_rewrite-and-htaccess

  • Hello, I've tried your solution, I've got rewrite.load inside /etc/apache2/mods-enabled, but when I place the .htaccess file in the root directory and move index.html and index.php to something other than index.html.bak and index.php.bak so that apache doesn't try to open them, I just get a directory lising of the server root, no redirection. And when I go to http: //localhost/magento I don't see the rewrite I was asking about. Jul 29, 2012 at 18:20
  • See the edit for more stuff to check.
    – barancw
    Jul 29, 2012 at 23:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.