Web制作メモ -トップへ-

[Apache] URLの.htmlを省略する

Apache2015.03.04 21:54

拡張子無しのURLでアクセスできるようにするには、.htaccessでRewriteCondRewriteRuleを使います。

例えば、「http://○○/test.html」というURLだったら「http://○○/test」でアクセスできるようになります。

RewriteCondは、RewriteRuleを実行する条件を指定します。

RewriteCondの条件に合致した場合、RewriteRuleでURLを書き換えます。

拡張子無しのURLでアクセス

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

上記のコードでは、%{REQUEST_FILENAME}というディレクトリが存在せず、%{REQUEST_FILENAME}.htmlというファイルが存在する場合、.html付きのURLに書き換えています。

リダイレクトと混同しがちですが、リダイレクトではないのでURLはそのまま(拡張子なし)となります。

リダイレクトする(URLを書き換える)場合はRewriteRuleにRオプションを付けます。