For a fuller step-by-step, you should see Instructions for setting up Clean Urls in the handbook, which includes distro-specific tips.
To avoid duplication, this troubleshooting page is reduced to a checklist.
Clean URLs must be enabled within the admin area. If the Clean URL setting is grayed out, you need:
- mod_rewrite enabled in the Apache conf file
- AllowOverride enabled in the Apache conf or vhosts file (so that .htaccess rules can apply)
- The .htaccess filename specified in the Apache conf file
- An .htaccess file in the root of the Drupal directory (may be hidden on some filesystems, but should be there)
- Rewrite instructions in .htaccess (distributed with Drupal, but sometimes needing tweaking)
Depending on your distribution, some or most of these directives should already be there, probably scattered throughout the file, or even subsidary 'vhost' conf files. You may have to consult the Apache docs or find help specific to your distribution, as these files may vary a lot.
To test your settings, run
or similar for a syntax check. (XAMMP?)
To Lastly reload your http server
(or similar. XAMMP has a shortcut for you)
apache2ctl on some Apache installations, on others you should use
apachectl -t. Also, restarting the server requires administrator privileges, like so:
sudo apachectl restart