Thanks for this post! Six years passed but it’s still useful. :) Just wanted to share my two cents.
I used wget with:
--mirror --convert-links --adjust-extension --page-requisites --no-parent --no-host-directories
so I got the correct extensions but still had question marks in my filenames. To get redirection working, this is what I used in my .htaccess:
DirectoryIndex index.html
RewriteEngine on
RewriteBase /
# index.html, feeds
RewriteCond %{QUERY_STRING} ^feed=(.+)$
RewriteRule ^(index\.html|)$ index.html\%3Ffeed=%1? [NE,R,L]
# index.html, with parameters
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^(index\.html|)$ index.html\%3F%1.html? [NE,R,L]
I didn’t care about trackbacks or xmlrpc, and I wanted the new URLs to be visible to the user (hence the R). If your blog is under a subfolder you can use a different base or replace “index.html\%3F%1.html” with “/blog/index.html\%3F%1.html”, for example.
The NE is to handle the question marks in the filenames. You can avoid them by using
--restrict-file-names=windows
with wget.