The following comments were valuable and should be moved to a child page on Clean URLs.

http://drupal.org/node/15365#comment-44471
http://drupal.org/node/15365#comment-71124
http://drupal.org/node/15365#comment-46976

Microsoft Internet Services Server

Windows ISS MySQL PHP(WIMP)-Tips for Configuring Drupal on WIMP

Lighttpd

For those who have stepped up a notch in performance and moved from Apache to Lighttpd, you can use the following configuration for Lighty's mod_rewrite module:

url.rewrite-final = (
  "^/system/test/(.*)$" => "/index.php?q=system/test/$1",
  "^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2",
  "^/([^.?]*)$" => "/index.php?q=$1"
)

The first line ensures that Drupal's clean URL check (when saving Settings) succeeds (Drupal makes an HTTP request for a path of the form /system/test/yLgnwqqUu5cWnvPi4Hrz.png). It's a special case that must be handled separately (read on for the reason).

The two following lines let Drupal handle any URL that doesn't contain a dot. This is significant because we can assume, fairly confidently, that addresses like /node/add are Drupal URLs, but addresses such as /themes/bluemarine/style.css are physical files. So the above configuration will work for all cases where this assumption holds true; if there are exceptions to the rule, they can be manually added to the rewrite configuration.

See also the related discussion at http://drupal.org/node/20766

I just successfully set up lighttpd 1.4.8 with php4 via fastcgi using those rules above.
As per lighttpd documentation I also set up /etc/php4/cgi/php.ini to have that cgi fix. Then I added those rewrite rules for corresponding virtual_host.

Comments

Amazon’s picture

As a documentation team member and a Drupal.org site administrator I took the above issue and created the following Clean URLs child page.

http://drupal.org/node/43782

Anyone can file issues on comments that they think should be moved to a handbook page.