こんな感じでしょうか。
RewriteEngine on # wwwありに統一 RewriteCond %{HTTP_HOST} !=www.example.jp RewriteRule (.*) http://www.example.jp/$1 [R,L] # index.htmlありに統一 RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME}/index.html -f RewriteRule ^(|.*/)$ /$1index.html [R,L]
■確認方法
ここで、www2.example.jp や example.jp や 10.0.0.1 などが www.example.jp を同じドキュメントルートに設定されているとします。
RewriteCond %{REQUEST_FILENAME}/index.html -f
間違っててもいいのでこれでどうだろうと言う内容を書いてみて欲しいのですが。
【301リダイレクトを使った「WWWあり」と「WWWなし」の統一】
http://www.suzukikenichi.com/blog/integrating-www-and-non-www-by-301-redirect/
【index.html「あり・なし」のURL正規化 – 301リダイレクト応用編】
http://www.suzukikenichi.com/blog/canonicalization-of-indexhtml-and-non-indexhtml/
前者は「www」ありのケースの説明がありますが、後者は「index.html」なしの場合の説明になっています。
これを単純にくっつけた上で、「index.html」ありの状態で動作するようにしたいのですが、これでどうだろうという内容を書いてみると…
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sample\.com
RewriteRule ^(.*)$ http://www.sample.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/
RewriteRule ^(.*)$ http://www.example.com/index.html$1 [R=301,L]
でしょうか…(ホントに分かりません)