The alternative rewrite rules I mentioned back in October can now be had in plugin form. The Reduced Rewrite plugin replaces the default rewrite rules with a reduced set that simply passes URIs along to WP’s internal rewrite handler. Handling the URIs in this way means that you do not need to make your .htaccess writable once the reduced rules are in place. With these rules, .htaccess does not need to be updated if the permalink structure changes or if new rules are added. The reduced rules also work around several annoying bugs in the mod_rewrite shipped with Apache 1.3. If you have trouble using %category% in your permalink structure, try these rules.
The disadvantage to the reduced rules is that they match everything under your blog directory. If a request is made for /this/dir/does/not/exist/, the server will not 404. Instead, the request is passed to WP and WP issues a 404 to the client. You won’t see a 404 in your server logs, however. If you have to see those 404s in the logs, don’t use the reduced rules.
After activating the plugin, update your permalink structure on the Options->Permalink page to get the new rules.
The plugin now supports two ways of redirecting from mod_rewrite to WP. The first way passes path info to WP. The rewrite rule looks like this:
RewriteRule ^(.+)$ /index.php/$1
The second way uses WP’s internal 404 handler instead of path info. The 404 handler will try to parse the permalink from the requested URI.
RewriteRule . /index.php?error=404
Set a flag in the plugin two switch between the two styles. If your server does not allow path info, use the 404 handler.