lucy24 - 9:53 pm on Sep 30, 2012 (gmt 0)
## turn off index.html, it is for offline mode
This is obscure. Did your site at some time in the past really use the .html extension-- or did you just use it yourself for local testing? If the pages never existed "in the world" onthe live site, you needn't bother about them.
RewriteRule ^.*index.html$ index.php [QSA]
Every time I think some prepackaged boilerplate has reached its limit and can't get worse, I am proven wrong.
^ = the request has a beginning
.* = there may or may not be something after the beginning of the request
index.html$ = the request ends in "indexXhtml" where X is any one character-- and the server, which has previously captured the entire request, now has to backtrack over and over until it either picks up "indexXhtml" or establishes that it doesn't exist. (Apache operates in one dimension. It can't see that "i" is followed by "n" and so on.)
index.php = no matter what index page the request was for, serve the content that lives at the site's front page
[QSA] = keep the original query string-- which would have happened anyway by default, because the Rule doesn't say anything about making a new one.
 = and now continue to the next RewriteRule, because there was no [L] flag.
Start by dumping the <IfModule... envelope. Not its content, just the envelope itself. That's easy, and you will have accomplished something.