A step-by-step process for enabling clean URLs

Last modified: May 2, 2009 - 18:13

I am running vmware workstation with Ubuntu 8.10 with LAMP and Drupal 6.6.

How I was able to enable clean URLs.

1. Open Terminal and type:
apache2ctl -M
to see if rewrite_module
is there. If it is not there, first go to the file browser and navigate to
/etc/apache2/mods-available
folder and confirm that rewrite.load exists. If it does not exist, then the rest of this won't help until it does.

If it does exist, we need to create a symlink from mods-enabled to mods-available. So in Terminal type or copy/paste:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load
(that first letter is a lowercase L ) ***If permission is denied, put sudo before ln
sudo ln -s ../mods-available/rewrite.load

2. Confirm that rewrite.load is now in the mod-enabled folder by opening the folder and finding it, or typing into Terminal
apache2ctl -M

So far so good? Great!

3. Next we need to open sites-enabled in the apache2 folder:
/etc/apache2/sties-enabled
and right-click the 000-default file and click the permissions tab. If the access is read-only, open Terminal and type:
sudo nautilus /etc

Doing that pops up the file browser as root. Navigate to 000-default again:
/etc/apache2/sites-enabled/000-default
right-click again, go to permissions and change all the read only's to read and write (mine change back automatically after I close the file directory but you might want to double-check.)

In this file it will say AllowOverride None in several places, each time inside of a different Directory tag. Find the one for where you've installed Drupal, and change it to AllowOverride All. For instance, if Drupal is installed at /home/username/www/drupal6, then it may be under the Directory "/home/username/www" grouping.

After this, open Terminal and and restart apache by typing:
sudo /etc/init.d/apache2 restart

You must restart Apache after every change you make to the apache files (if you expect to see changes in Drupal, for example).

Last but not least, I COULD VERY WELL BE WRONG AND DOING SOMETHING QUITE AWFUL, but it did work for me.

I figured this out after finding these two sites: http://www.jonathansblog.net/node/22 and http://linux.derkeiler.com/Mailing-Lists/Debian/2005-03/2483.html

~Admerin

AllowOverride only once

sausis - February 10, 2009 - 10:17

Hi, for me single replacement was enough: at (on ubuntu with apache2).

Error Found

nhomar - March 30, 2009 - 01:54

Hi.

In the line wher said:

ln -s ../mods-available/rewrite.load (that first letter is a lowercase L ) ***If permission is denied, put sudo before ln
sudo ln -s ../mods-available/rewrite.load

Must Said:

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load (that first letter is a lowercase L ) ***If permission is denied, put sudo before ln.....
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

I make in Debian Lenny..... Very Fine Howto... It was necesary

Suggestion

Prashant919 - August 29, 2009 - 19:17

As said there there is no need of giving command : sudo nautilus /etc

Just you need to do is that:
- edit the file 000-default in "/etc/apache2/sites-enabled/000-default" and edit it as administrator(with sudo command).
- Thus find the AllowOverride just under the Directory "/home/username/www" grouping.
- Change it to AllowOverride All and restart the Apache server.

Thanks!

This fix works!!!

kitemedia - September 29, 2009 - 20:19

THANK YOU SO MUCH!!! I can stop pulling my hair out now :)

Thanks, nice directions

tomthumb99 - October 30, 2009 - 11:21

Thanks..first time one of these Durpal sites had easy to follow command line instructions...good. They do not stress enough how apache is the master.

On my way to getting Drupal-6 working under Ubuntu, not there yet though....

 
 

Drupal is a registered trademark of Dries Buytaert.