mod_rewrite

強制的にSSLでアクセスして欲しい場合

RewriteEngine on
#SSLアクセスしてほしいページ
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{HTTP_HOST}/$1 [L,R]

存在しないファイルやディレクトリにアクセスの場合、トップページ表示

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ / [L]

RewriteRuleのフラグ

フラグ意味説明
CChainこのルールにマッチしたら、次のルールを評価
FForbiddenアクセス禁止(403-Forbidden)。[L]フラグと同様、以降のルールは無視される
GGone削除(410-Gone)
LLast マッチしたらRewriteを止めます。以降のルールは無視!
NCNo Case大文字小文字を無視
NENo Escape“.”, “?”, “%“などの特殊文字が”%25″のようにエンコードされるのを防ぐ
OROrRewriteCondを複数指定する場合のor指定。指定なしならAND
PTPath ThroughRewriteを終了し、それ以外の処理に移行
RRedirect指定したURLにリダイレクト。
[R=303]のようにリダイレクトコードも付加できる。[L]フラグと同様、以降のルールは無視される